test_wfs.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python
  2. # coding=utf-8
  3. import os
  4. from test_ows import TestOWS
  5. import wfs
  6. import unittest
  7. import urllib
  8. import urlparse
  9. import mapscript
  10. from lxml import objectify
  11. class TestWFS(TestOWS):
  12. service = "WFS"
  13. def test_getmapobj(self):
  14. self.assertTrue(isinstance(self.service, wfs.WFS))
  15. mapObj = self.service.makeMap()
  16. self.assertTrue(isinstance(mapObj, mapscript.mapObj))
  17. self.assertEquals(mapObj.numlayers,1)
  18. layer = mapObj.getLayer(0)
  19. self.assertEquals(layer.type,mapscript.MS_LAYER_LINE)
  20. # download the WMS Capabilities
  21. url = self._getURLWithMap(self.service.mapfilename)
  22. url = urlparse.urlparse(url)
  23. params = urlparse.parse_qs(url[4])
  24. params["REQUEST"] = "GetCapabilities"
  25. params["SERVICE"] = "WMS"
  26. params = urllib.unquote(urllib.urlencode(params,True))
  27. attrs = (url[0],url[1],url[2],url[3],params,url[5])
  28. resp = objectify.parse(urllib.urlopen(urlparse.urlunparse(attrs)))
  29. capabilities = resp.getroot()
  30. # test the wms capabilities document
  31. self.assertEquals(capabilities.Capability.tag,"{http://www.opengis.net/wms}Capability")
  32. self.assertEquals(capabilities.Capability.Layer.Layer.Name.text, "line")
  33. if __name__ == "__main__":
  34. unittest.main()