浏览代码

wfs test upgrade

Jachym Cepicky 14 年之前
父节点
当前提交
84e6176931
共有 4 个文件被更改,包括 20 次插入5 次删除
  1. 1 0
      OWS.py
  2. 1 1
      config.cfg-template
  3. 14 3
      tests/test_wfs.py
  4. 4 1
      wfs/__init__.py

+ 1 - 0
OWS.py

@@ -140,6 +140,7 @@ class OWS:
         self.cachedir = tempfile.mkdtemp(prefix="%s-%s"%(self.service,
                                         md5.new(self.url).hexdigest()),
                                         dir=self.config.get("OWSViewer","cachedir"))
+        os.chmod(self.cachedir,  0777)
         logging.debug("Cachedir %s created" % self.cachedir)
         open(os.path.join(self.cachedir,"url.txt"),"w").write(self.url)
         return self.cachedir

+ 1 - 1
config.cfg → config.cfg-template

@@ -6,6 +6,6 @@ logging=DEBUG
 tempdir=/tmp/
 errorfile=/tmp/mapserv.log
 imagepath=/tmp/mapserv/
-onlineresource=http://localhost/cgi-bin/owsviewer.cgi
+onlineresource=http://localhost/cgi-bin/owsproxy.cgi
 srs=EPSG:4326 EPSG:102067 EPSG:900913 EPSG:3035
 

+ 14 - 3
tests/test_wfs.py

@@ -7,6 +7,7 @@ from test_ows import TestOWS
 import wfs
 import unittest
 import urllib
+import urlparse
 import mapscript
 from lxml import objectify
 
@@ -27,9 +28,19 @@ class TestWFS(TestOWS):
         self.assertEquals(layer.type,mapscript.MS_LAYER_LINE)
 
         # download the WMS Capabilities
-        capabilities = objectify.parse(urllib.urlopen(self._getURLWithMap(self.service.mapfilename)))
-        capabilities = capabilities.getroot()
-        print self._getURLWithMap(self.service.mapfilename)
+        url = self._getURLWithMap(self.service.mapfilename)
+        url = urlparse.urlparse(url)
+        params = urlparse.parse_qs(url[4])
+        params["REQUEST"] = "GetCapabilities"
+        params["SERVICE"] = "WMS"
+        params = urllib.unquote(urllib.urlencode(params,True))
+        attrs = (url[0],url[1],url[2],url[3],params,url[5])
+        resp = objectify.parse(urllib.urlopen(urlparse.urlunparse(attrs)))
+        capabilities = resp.getroot()
+
+        # test the wms capabilities document
+        self.assertEquals(capabilities.Capability.tag,"{http://www.opengis.net/wms}Capability")
+        self.assertEquals(capabilities.Capability.Layer.Layer.Name.text, "line")
 
 if __name__ == "__main__":
     unittest.main()

+ 4 - 1
wfs/__init__.py

@@ -73,7 +73,10 @@ class WFS(OWS):
                 logging.debug("No ogrDataSource found")
                 continue
 
-            lyrobj.setProjection(layer.DefaultSRS.text)
+            if self.capabilities.attrib["version"] == "1.0.0":
+                lyrobj.setProjection(layer.SRS.text)
+            else:
+                lyrobj.setProjection(layer.DefaultSRS.text)
             lyrobj.dump = mapscript.MS_TRUE 
             lyrobj.template = "foo"
             cls = mapscript.classObj(lyrobj)