示例#1
0
    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')
示例#2
0
    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')
示例#3
0
    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');
示例#4
0
    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)
示例#5
0
    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');
示例#6
0
    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)