def test_widget_with_default_settings(self): """ Test the widget with default settings which is defined in django settings file """ zoom = 15 default_map_center = [51.5073509, -0.12775829999] widget_settings = { "GooglePointFieldWidget": ( ("zoom", zoom), ("mapCenterLocation", default_map_center), ) } with override_settings(MAP_WIDGETS=widget_settings): reload_module(mw_widgets) widget = mw_widgets.GooglePointFieldWidget() self.assertEqual(hasattr(widget, "settings"), True) self.assertEqual(hasattr(widget, "settings_namespace"), True) self.assertEqual(isinstance(widget.media, django_forms.Media), True) # test `map_options` method options_str = widget.map_options() options = json.loads(options_str) self.assertEqual(options.get("zoom"), zoom) self.assertEqual(options.get("mapCenterLocation"), default_map_center) # test render with Point object value point = Point(-104.9903, 39.7392, srid=DJANGO_DEFAULT_SRID_VALUE) widget_html_elem_id = "id_location" widget_html_elem_name = "location" result = widget.render(name=widget_html_elem_name, value=point, attrs={'id': widget_html_elem_id}) self.assertIn(widget.serialize(point), result) self.assertIn( get_textarea_html(widget_html_elem_id, widget_html_elem_name, point), result) self.assertIn(escapejs(options_str), result) # test render with serialized data value result = widget.render(name=widget_html_elem_name, value=widget.serialize(point)) self.assertIn(widget.serialize(point), result) # test widget `attrs` param w = mw_widgets.GooglePointFieldWidget(attrs={"max-height": 600}) self.assertIn("max-height", w.attrs) # test widget render `attrs` param with `None` value self.assertIn( widget_html_elem_name, w.render(name=widget_html_elem_name, value=None, attrs=None))
def test_widget_with_custom_settings(self): """ Test the widget with custom settings which is updated by `settings` parameter """ zoom = 11 default_map_center = [52.5073509, -0.23775829999] widget_settings = {"GooglePointFieldWidget": (("zoom", zoom), ("mapCenterLocation", default_map_center))} widget = mw_widgets.GooglePointFieldWidget(settings=widget_settings) self.assertEqual(hasattr(widget, "settings"), True) self.assertEqual(hasattr(widget, "settings_namespace"), True) self.assertEqual(isinstance(widget.media, django_forms.Media), True) # test `map_options` method options_str = widget.map_options() options = json.loads(options_str) self.assertEqual(options.get("zoom"), zoom) self.assertEqual(options.get("mapCenterLocation"), default_map_center) # test render with Point object value point = Point(-105.9903, 38.73922, srid=DJANGO_DEFAULT_SRID_VALUE) widget_html_elem_id = "id_location" widget_html_elem_name = "location" result = widget.render(name=widget_html_elem_name, value=point, attrs={"id": widget_html_elem_id}) self.assertIn(widget.serialize(point), result) self.assertIn(get_textarea_html(widget_html_elem_id, widget_html_elem_name, point), result) self.assertIn(escapejs(options_str), result) # test render with serialized data value result = widget.render(name=widget_html_elem_name, value=widget.serialize(point)) self.assertIn(widget.serialize(point), result)
def test_widget_with_different_srid(self): """ Test the widget with a different `srid` value instead of Geo Django default """ point = Point(-16351.8201902, 6708983.38973, srid=3857) widget_html_elem_id = "id_location" widget_html_elem_name = "location" widget = mw_widgets.GooglePointFieldWidget(map_srid=3857) result = widget.render(name=widget_html_elem_name, value=point, attrs={"id": widget_html_elem_id}) ogr = point.ogr ogr.transform(GOOGLE_MAP_DEFAULT_SRID_VALUE) point_with_google_map_srid_format = ogr self.assertIn(widget.serialize(point_with_google_map_srid_format), result)