class GeoDetailViewTestCase(TestCase): model = GeoLocation precision = forms.GeometryQueryForm()['precision'].field.initial def setUp(self): self.pk = 1 self.radius = 5 self.model.add_buffer((10, -10), self.radius) self.model.create() self.qs = self.model.objects.all() self.view = generics.GeoDetailView.as_view(queryset=self.qs) def test_api_response(self): request = factory.get('/', HTTP_ACCEPT='text/html') response = self.view(request, pk=self.pk).render() self.assertContains(response, self.qs[0].geom.wkt) def test_json_response(self): expected = json.loads(self.qs[0].geom.geojson) response = self.view(factory.get('/'), pk=self.pk).render() self.assertEqual(response.status_code, 200) feature = json.loads(response.content) self.assertEqual(feature['geometry'], expected) self.assertEqual(feature['type'], 'Feature') def test_geojson_response(self): expected = json.loads( self.qs.geojson(precision=self.precision)[0].geojson) request = factory.get('/', {'format': 'geojson'}) with self.assertNumQueries(1): response = self.view(request, pk=self.pk).render() self.assertEqual(response.status_code, 200) feature = json.loads(response.content) self.assertEqual(feature['geometry'], expected) self.assertEqual(feature['type'], 'Feature') def test_kml_response(self): request = factory.get('/', {'format': 'kml'}) response = self.view(request, pk=self.pk).render() part = self.qs.kml(precision=self.precision)[0].kml self.assertInHTML(part, response.content, count=1)
def test_data(self): form = forms.GeometryQueryForm({'srs': 3857}) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data['srs'].srid, 3857)