def test_deserialize(self): params = {'Spot--the_geom': 'Point(0 1)', 'Spot--name': 'dummy'} session = FakeSession() spot_fieldset = FieldSet(Spot, data = params, session=session) spot_fieldset.the_geom.set(options=[('map_srid', 4326)]) spot_fieldset.validate() spot_fieldset.sync() ok_(isinstance(spot_fieldset.model.the_geom, WKTSpatialElement), 'Geometry was not assigned to model') eq_(str(spot_fieldset.model.the_geom), 'Point(0 1)', 'wkt is wrong') params = {'Spot--the_geom': ' ', 'Spot--name': ''} spot_fieldset = FieldSet(Spot, data = params, session=session) spot_fieldset.validate() spot_fieldset.sync() ok_(spot_fieldset.model.the_geom is None, 'Geometry is not set to None for empty strings')
def test_render_validate(self): params = {'Spot--the_geom': 'Point(0 1)'} spot_fieldset = FieldSet(Spot, data = params) spot_fieldset.validate() form = spot_fieldset.render() ok_("Point(0 1)'" in form, 'submitted value was not re-displayed in case of validation error')
def test_render_reproject(self): session = FakeSession() spot_fieldset = FieldSet(Spot, session=session) spot_fieldset.the_geom.set(options=[('map_srid', 900913)]) spot = Spot() spot.id = 1 spot.the_geom = PersistentSpatialElement(PersistentSpatialElement(WKBSpatialElement('010'))); spot_fieldset = spot_fieldset.bind(spot) spot_fieldset.render() ok_(isinstance(session.scalar_args[0], functions.wkt), 'The geometry was not queried as WKT'); ok_(isinstance(session.scalar_args[0].arguments[0], functions.transform), 'The geometry was not reprojected');
def test_render_options(self): spot_fieldset = FieldSet(Spot) spot_fieldset.the_geom.set(options=[ ('default_lat', 1), ('default_lon', 2), ('zoom', 3), ('map_width', 4), ('map_height', 5), ('base_layer', 'new OpenLayers.Layer.DummyLayer("OSM")'), ('openlayers_lib', '/js/OpenLayers.js')]) form = spot_fieldset.render() ok_('1,\n 2,\n 3, \'Point\', new OpenLayers.Layer.DummyLayer("OSM"),', form) ok_('<script src="/js/OpenLayers.js"></script>' in form) ok_('init_map(' in form)
def test_render(self): session = FakeSession() spot_fieldset = FieldSet(Spot, session=session) spot = Spot() spot.id = 1 spot.the_geom = PersistentSpatialElement(PersistentSpatialElement(WKBSpatialElement('010'))); spot_fieldset = spot_fieldset.bind(spot) form = spot_fieldset.render() ok_("geoformalchemy.init_map(" in form, 'Template was not rendered') ok_("'Point'," in form, 'OpenLayers geometry was not mapped correctly ') ok_("false," in form, 'Geometry should not be a collection') ok_(isinstance(session.scalar_args[0], functions.wkt), 'The geometry was not queried as WKT');
def test_render_additional_options(self): spot_fieldset = FieldSet(Spot) spot_fieldset.the_geom.set(options=[ ('default_lat', 1), ('default_lon', 2), ('zoom', 3), ('map_width', 4), ('map_height', 5), ('base_layer', 'new OpenLayers.Layer.DummyLayer("OSM")'), ('run_js', False), ('insert_libs', False) ]) form = spot_fieldset.render() ok_('<script src="/js/OpenLayers.js"></script>' not in form) ok_('init_map(' not in form)