1919from geotrek .common .models import Organism , Theme , FileType , Attachment , Label
2020from geotrek .common .tests .mixins import GeotrekParserTestMixin
2121from geotrek .core .tests .factories import PathFactory
22- from geotrek .outdoor .models import Site
22+ from geotrek .outdoor .models import Practice , Rating , RatingScale , Sector , Site
2323from geotrek .outdoor .parsers import GeotrekSiteParser
2424from geotrek .trekking .tests .factories import RouteFactory
2525from geotrek .trekking .models import POI , POIType , Service , Trek , DifficultyLevel , Route
2929)
3030
3131
32-
3332class TestGeotrekSiteParser (GeotrekSiteParser ):
3433 url = "https://test.fr"
3534 provider = 'geotrek1'
3635 field_options = {
3736 'type' : {'create' : True , },
38- 'ratings' : {'create' : True , },
3937 'themes' : {'create' : True },
40- 'practice' : {'create' : True },
4138 'geom' : {'required' : True },
4239 'labels' : {'create' : True },
4340 'source' : {'create' : True },
@@ -72,7 +69,6 @@ class TestGeotrek2SiteParser(GeotrekSiteParser):
7269# 'geom': {'required': True},
7370# }
7471
75-
7672@override_settings (MODELTRANSLATION_DEFAULT_LANGUAGE = "fr" )
7773@skipIf (settings .TREKKING_TOPOLOGY_ENABLED , 'Test without dynamic segmentation only' )
7874class SiteGeotrekParserTests (GeotrekParserTestMixin , TestCase ):
@@ -85,14 +81,16 @@ def setUpTestData(cls):
8581 @mock .patch ('requests.head' )
8682 def test_create (self , mocked_head , mocked_get ):
8783 self .mock_time = 0
88- self .mock_json_order = [('outdoor' , 'outdoor_practice.json' ),
89- ('outdoor' , 'outdoor_rating.json' ),
90- ('outdoor' , 'theme.json' ),
84+ self .mock_json_order = [('outdoor' , 'theme.json' ),
9185 ('outdoor' , 'outdoor_sitetype.json' ),
9286 ('outdoor' , 'label.json' ),
9387 ('outdoor' , 'source.json' ),
9488 ('outdoor' , 'organism.json' ),
9589 ('outdoor' , 'structure.json' ),
90+ ('outdoor' , 'outdoor_sector.json' ),
91+ ('outdoor' , 'outdoor_practice.json' ),
92+ ('outdoor' , 'outdoor_ratingscale.json' ),
93+ ('outdoor' , 'outdoor_rating.json' ),
9694 ('outdoor' , 'outdoor_site_ids.json' ),
9795 ('outdoor' , 'outdoor_site.json' )]
9896
@@ -104,17 +102,26 @@ def test_create(self, mocked_head, mocked_get):
104102
105103 call_command ('import' , 'geotrek.outdoor.tests.test_parsers.TestGeotrekSiteParser' , verbosity = 0 )
106104 self .assertEqual (Site .objects .count (), 6 )
105+ self .assertEqual (Sector .objects .count (), 2 )
106+ self .assertEqual (RatingScale .objects .count (), 1 )
107+ self .assertEqual (Rating .objects .count (), 3 )
108+ self .assertEqual (Practice .objects .count (), 1 )
107109 site = Site .objects .get (name_fr = "Racine" , name_en = "Root" )
108110 # TODO : all the ones that are commented do not work
109111 self .assertEqual (site .published , True )
110112 self .assertEqual (site .published_fr , True )
111113 self .assertEqual (site .published_en , True )
112114 self .assertEqual (site .published_it , False )
113115 self .assertEqual (site .published_es , False )
116+ self .assertEqual (str (site .practice .sector ), 'Vertical' )
114117 self .assertEqual (str (site .practice ), 'Escalade' )
115118 self .assertEqual (str (site .labels .first ()), 'Label fr' )
116- #self.assertEqual(str(site.ratings.all()), 'Très facile')
117- #self.assertEqual(str(site.practice.sector), 'Vertical')
119+ self .assertEqual (site .ratings .count (), 3 )
120+ self .assertEqual (str (site .ratings .first ()), 'Cotation : 3+' )
121+ self .assertEqual (site .ratings .first ().description , 'Une description' )
122+ self .assertEqual (site .ratings .first ().order , 302 )
123+ self .assertEqual (site .ratings .first ().color , '#D9D9D8' )
124+ self .assertEqual (str (site .ratings .first ().scale ), 'Cotation (Escalade)' )
118125 self .assertEqual (str (site .type ), 'Ecole' )
119126 self .assertAlmostEqual (site .geom [0 ][0 ][0 ][0 ], 970023.8976707931 , places = 5 )
120127 self .assertAlmostEqual (site .geom [0 ][0 ][0 ][1 ], 6308806.903248067 , places = 5 )
@@ -135,14 +142,16 @@ def test_create(self, mocked_head, mocked_get):
135142 self .assertEqual (site .orientation , ['NE' , 'S' ])
136143 self .assertEqual (site .ambiance , "Test ambiance fr" )
137144 self .assertEqual (site .ambiance_en , "Test ambiance en" )
138- #self.assertEqual(site.parent) # TODO use other to test this
139145 self .assertEqual (site .wind , ['N' , 'E' ])
146+ self .assertEqual (str (site .structure ), 'Test structure' )
140147 # self.assertEqual(site.information_desks.count(), 1)
141148 # self.assertEqual(site.weblink.count(), 1)
142149 # self.assertEqual(site.excluded_pois.count(), 1)
143150 self .assertEqual (site .eid , "57a8fb52-213d-4dce-8224-bc997f892aae" )
144151 # self.assertEqual(Attachment.objects.filter(object_id=site.pk).count(), 3)
145152 # self.assertEqual(Attachment.objects.get(object_id=site.pk, license__isnull=False).license.label, "License")
153+ child_site = Site .objects .get (name_fr = "Noeud 1" , name_en = "Node" )
154+ self .assertEqual (child_site .parent , site )
146155
147156 @mock .patch ('requests.get' )
148157 @mock .patch ('requests.head' )
0 commit comments