diff --git a/geotrek/common/parsers.py b/geotrek/common/parsers.py index 6e5e580290..1240643dfd 100644 --- a/geotrek/common/parsers.py +++ b/geotrek/common/parsers.py @@ -1167,6 +1167,7 @@ class GeotrekAggregatorParser: "TouristicEvent": ("geotrek.tourism.parsers", "GeotrekTouristicEventParser"), "Signage": ("geotrek.signage.parsers", "GeotrekSignageParser"), "Infrastructure": ("geotrek.infrastructure.parsers", "GeotrekInfrastructureParser"), + "Site": ("geotrek.outdoor.parsers", "GeotrekOutdoorSiteParser"), } invalid_model_topology = ['Trek', 'POI', 'Service', 'Signage', 'Infrastructure'] diff --git a/geotrek/outdoor/parsers.py b/geotrek/outdoor/parsers.py index 87376fdc03..46c6f4f271 100644 --- a/geotrek/outdoor/parsers.py +++ b/geotrek/outdoor/parsers.py @@ -1,5 +1,6 @@ from django.conf import settings -from geotrek.common.parsers import (ApidaeBaseParser, AttachmentParserMixin, GeotrekParser, GlobalImportError, Parser) + +from geotrek.common.parsers import GeotrekParser from geotrek.outdoor.models import Practice, Rating, RatingScale, Sector, Site diff --git a/geotrek/outdoor/tests/data/geotrek_parser_v2/outdoor_site.json b/geotrek/outdoor/tests/data/geotrek_parser_v2/outdoor_site.json index 7679d5c5a3..65d5adc89c 100644 --- a/geotrek/outdoor/tests/data/geotrek_parser_v2/outdoor_site.json +++ b/geotrek/outdoor/tests/data/geotrek_parser_v2/outdoor_site.json @@ -536,7 +536,24 @@ "en": "Test ambiance en", "fr": "Test ambiance fr" }, - "attachments": [], + "attachments": [ + { + "backend": "", + "type": "image", + "filetype": { + "id": 1, + "structure": null, + "type": "Photographie" + }, + "author": "", + "license": null, + "thumbnail": "https://foo.fr/media/paperclip/trekking_trek/10443/1083px-arrien-en-bethmale_general_view.JPG.400x0_q85.jpg", + "legend": "Arrien-en-Bethmale, vue du village", + "title": "", + "url": "https://foo.fr/media/paperclip/trekking_trek/10443/1083px-arrien-en-bethmale_general_view.JPG", + "uuid": "c648fff1-2416-48fa-a67d-5fbcf466f3a1" + } + ], "cities": [], "children": [ 2, diff --git a/geotrek/outdoor/tests/test_parsers.py b/geotrek/outdoor/tests/test_parsers.py index 0d2bc9a80f..c405ce0926 100644 --- a/geotrek/outdoor/tests/test_parsers.py +++ b/geotrek/outdoor/tests/test_parsers.py @@ -6,7 +6,7 @@ from django.test import TestCase from django.test.utils import override_settings -from geotrek.common.models import FileType +from geotrek.common.models import Attachment, FileType from geotrek.common.tests.mixins import GeotrekParserTestMixin from geotrek.outdoor.models import Practice, Rating, RatingScale, Sector, Site from geotrek.outdoor.parsers import GeotrekSiteParser @@ -114,7 +114,9 @@ def test_create(self, mocked_head, mocked_get): # self.assertEqual(site.weblink.count(), 1) # self.assertEqual(site.excluded_pois.count(), 1) self.assertEqual(site.eid, "57a8fb52-213d-4dce-8224-bc997f892aae") - # self.assertEqual(Attachment.objects.filter(object_id=site.pk).count(), 3) - # self.assertEqual(Attachment.objects.get(object_id=site.pk, license__isnull=False).license.label, "License") + self.assertEqual(Attachment.objects.filter(object_id=site.pk).count(), 1) + attachment = Attachment.objects.filter(object_id=site.pk).first() + self.assertIsNotNone(attachment.attachment_file.url) + self.assertEqual(attachment.legend, 'Arrien-en-Bethmale, vue du village') child_site = Site.objects.get(name_fr="Noeud 1", name_en="Node") self.assertEqual(child_site.parent, site)