def test_widget_with_default_settings(self): """ Test the widget with default settings which is defined in django settings file """ zoom = 13 map_size = "200x200" widget_settings = { "GoogleStaticMapWidget": ( ("zoom", zoom), ("size", map_size), ), "GOOGLE_MAP_API_KEY": GOOGLE_MAP_API_KEY, } with override_settings(MAP_WIDGETS=widget_settings): reload_module(mw_widgets) widget = mw_widgets.GoogleStaticMapWidget() settings = widget.map_settings # test `map_settings` method self.assertEqual(settings.get("zoom"), zoom) self.assertEqual(settings.get("size"), map_size) # test render point = Point(-105.9903, 38.7392) 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}) map_image_url = widget.get_image_url(point) self.assertIn(GOOGLE_MAP_API_KEY, map_image_url) self.assertIn(html_escape(map_image_url), result) # test map_image_url res = urlopen(map_image_url) self.assertEqual(res.getcode(), 200) if hasattr(res.info(), 'type'): self.assertEqual(res.info().type, "image/png") else: self.assertEqual(res.info().get_content_type(), "image/png") # test map_image_url with `None` value result = widget.render(name=widget_html_elem_name, value=None, attrs={'id': widget_html_elem_id}) map_image_url = widget.get_image_url(None) self.assertIn(map_image_url, result)
def test_widget_with_custom_settings(self): """ Test the widget with custom settings which is updated by `settings` parameter """ zoom = 9 map_size = "100x100" widget_settings = { "GoogleStaticMapWidget": ( ("zoom", zoom), ("size", map_size), ), "GOOGLE_MAP_API_KEY": GOOGLE_MAP_API_KEY, } with override_settings(MAP_WIDGETS=widget_settings): reload_module(mw_widgets) widget = mw_widgets.GoogleStaticMapWidget(zoom=zoom, size=map_size) settings = widget.map_settings # test `map_settings` method self.assertEqual(settings.get("zoom"), zoom) self.assertEqual(settings.get("size"), map_size) # test render point = Point(-105.9903, 38.7392) 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}) map_image_url = widget.get_image_url(point) self.assertIn(GOOGLE_MAP_API_KEY, map_image_url) self.assertIn(html_escape(map_image_url), result) # test map_image_url res = urllib.urlopen(map_image_url) self.assertEqual(res.getcode(), 200) self.assertEqual(res.info().type, "image/png")