def test_render_with_single(self): renderer = GeoJsonRenderer() result = json.loads(renderer.render(self.contrib)) self.assertTrue("geometry" in result) self.assertFalse("geometry" in result.get("location"))
def test_render_with_many(self): renderer = GeoJsonRenderer() result = json.loads(renderer.render([self.contrib])) self.assertEqual(result.get("type"), "FeatureCollection") self.assertEqual(len(result.get("features")), 1)
def test_render_with_none(self): renderer = GeoJsonRenderer() result = renderer.render(None) self.assertEqual(result, "")
def get(self, request, urlhash, format=None): context = self.get_context(request, urlhash) export = context.get('export') if export and format: content_type = 'text/plain' if format == 'json': renderer = GeoJsonRenderer() elif format == 'kml': renderer = KmlRenderer() contributions = export.project.get_all_contributions( export.creator).filter(category=export.category) if export.bounding_box is not None: contributions = contributions.filter( location__geometry__bboverlaps=export.bounding_box) serializer = ContributionSerializer( contributions, many=True, context={'user': export.creator, 'project': export.project} ) protocol = 'https' if request.is_secure() else 'http' url = '%s://%s' % (protocol, request.get_host()) for contribution in serializer.data: media = FileSerializer( MediaFile.objects.filter( contribution__id=contribution['id'] ), many=True, context={'user': export.creator, 'project': export.project} ).data for file in media: if not file['url'].startswith('http'): file['url'] = url + file['url'] if not file['thumbnail_url'].startswith('http'): file['thumbnail_url'] = url + file['thumbnail_url'] contribution['media'] = media contribution['comments'] = CommentSerializer( Comment.objects.filter( commentto__id=contribution['id'], respondsto=None ), many=True, context={'user': export.creator, 'project': export.project} ).data content = renderer.render(serializer.data) if export.isoneoff: export.expire() else: content = render_to_string('export_access.html', context) content_type = 'text/html' return HttpResponse(content, content_type=content_type)
def test_render_with_many(self): renderer = GeoJsonRenderer() result = json.loads(renderer.render([self.contrib])) self.assertEqual(result.get('type'), 'FeatureCollection') self.assertEqual(len(result.get('features')), 1)
def test_render_with_single(self): renderer = GeoJsonRenderer() result = json.loads(renderer.render(self.contrib)) self.assertTrue('geometry' in result) self.assertFalse('geometry' in result.get('location'))
def test_render_with_none(self): renderer = GeoJsonRenderer() result = renderer.render(None) self.assertEqual(result, '')