def commit (self): sql = """update txn set bbox = envelope(collect(shape)) from history where history.txn_id = txn.uuid and txn.uuid = '%s'""" \ % self.txn_uuid cursor = self.db.cursor() cursor.execute(str(sql)) PostGIS.commit(self)
def begin (self): PostGIS.begin(self) self.txn_uuid = uuid.uuid1().hex sql = """INSERT INTO txn (uuid, actor, message, commit_time) VALUES ('%s', 1, 'message', now());""" % self.txn_uuid cursor = self.db.cursor() cursor.execute(str(sql))
class ShapeFileTestCase(unittest.TestCase): datasource = None server = None config = {'type': 'PostGIS', 'title': 'All', 'abstract': 'All', 'dsn' : 'host=localhost dbname=test_gis_ch user=gisuser password=gisuser', 'layer' : 'planet_osm_polygon', 'fid': 'osm_id', 'geometry': 'way', 'srid' : '4326', 'attribute_cols' : 'boundary,name,landuse', 'bbox' : '5.95459 45.75986 10.52490 47.83528'} service = None def setUp(self): self.datasource = PostGIS('all', **self.config) self.server = Server({'all': self.datasource}) self.service = SHP(self.server) def tearDown(self): self.service = None self.datasource = None self.server = None def testShapeFile(self): params = {'filter': '<Filter><Or>' + '<PropertyIsEqualTo><ValueReference>landuse</ValueReference><Literal>vineyard</Literal></PropertyIsEqualTo>' + '<PropertyIsEqualTo><ValueReference>boundary</ValueReference><Literal>administrative</Literal></PropertyIsEqualTo>' + '</Or></Filter>', 'typename': 'all', 'version': '1.0.0', 'request': 'GetFeature', 'service': 'WFS' } path_info = '/' host = 'http://localhost:8080' post_data = None request_method = 'GET' response = [] self.service.parse(params, path_info, host, post_data, request_method) self.datasource.begin() for action in self.service.actions: method = getattr(self.datasource, action.method) result = method(action) response += result self.datasource.commit() mime, data, headers = self.service.encode(response)
class ShapeFileTestCase(unittest.TestCase): datasource = None server = None config = {'type': 'PostGIS', 'title': 'All', 'abstract': 'All', 'dsn' : 'host=localhost dbname=test_gis_ch user=gisuser password=gisuser', 'layer' : 'planet_osm_polygon', 'fid': 'osm_id', 'geometry': 'way', 'srid' : '4326', 'attribute_cols' : 'boundary,name,landuse', 'LatLongBoundingBox' : '5.95459 45.75986 10.52490 47.83528'} service = None def setUp(self): self.datasource = PostGIS('all', **self.config) self.server = Server({'all': self.datasource}) self.service = SHP(self.server) def tearDown(self): self.service = None self.datasource = None self.server = None def testShapeFile(self): params = {'filter': '<Filter><Or>' + '<PropertyIsEqualTo><ValueReference>landuse</ValueReference><Literal>vineyard</Literal></PropertyIsEqualTo>' + '<PropertyIsEqualTo><ValueReference>boundary</ValueReference><Literal>administrative</Literal></PropertyIsEqualTo>' + '</Or></Filter>', 'typename': 'all', 'version': '1.0.0', 'request': 'GetFeature', 'service': 'WFS' } path_info = '/' host = 'http://localhost:8080' post_data = None request_method = 'GET' response = [] self.service.parse(params, path_info, host, post_data, request_method) self.datasource.begin() for action in self.service.actions: method = getattr(self.datasource, action.method) result = method(action) response += result self.datasource.commit() mime, data, headers = self.service.encode(response)
def testObjectIdentifiers(self): self.datasource = PostGIS('all', **self.params) self.server = Server({'all': self.datasource}) for fil, stmt in self.filters.iteritems(): filterEncoding = filter.FilterEncoding(fil) filterEncoding.parse() self.assertEqual(stmt, filterEncoding.render(self.datasource))
def load(self): """Class method on Service class to load datasources and metadata from a configuration file.""" self.metadata = {'default_service': 'WFS'} #if config.has_section("metadata"): #for key in config.options("metadata"): #metadata[key] = config.get("metadata", key) self.processes = {} for key in self.config['postgis'].keys(): params = self.config['postgis'][key] datasource = PostGIS(key, **params) self.datasources[key] = datasource
def setUp(self): self.datasource = PostGIS('all', **self.params) self.server = Server({'all': self.datasource})
def __init__(self, name, **args): PostGIS.__init__(self, name, **args)
def setUp(self): self.datasource = PostGIS('all', **self.config) self.server = Server({'all': self.datasource}) self.service = SHP(self.server)