Example #1
0
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)
Example #2
0
 def test_data(self):
     form = forms.GeometryQueryForm({'srs': 3857})
     self.assertTrue(form.is_valid())
     self.assertEqual(form.cleaned_data['srs'].srid, 3857)