#!/usr/bin/env python # coding=utf-8 import os from test_ows import TestOWS import wfs import unittest import urllib import urlparse import mapscript from lxml import objectify class TestWFS(TestOWS): service = "WFS" def test_getmapobj(self): self.assertTrue(isinstance(self.service, wfs.WFS)) mapObj = self.service.makeMap() self.assertTrue(isinstance(mapObj, mapscript.mapObj)) self.assertEquals(mapObj.numlayers,1) layer = mapObj.getLayer(0) self.assertEquals(layer.type,mapscript.MS_LAYER_LINE) # download the WMS Capabilities 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()