diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-08 00:12:12 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-08 00:15:52 +0100 |
commit | 8d2fb762f22d4899941b5cea2117365eb55a87d6 (patch) | |
tree | 26ece5edb55f6f3aea316ac41d35964217fbd88e /chimere/tests.py | |
parent | af8522d68d00ff30bc188513525020f0eda3ae2d (diff) | |
download | Chimère-8d2fb762f22d4899941b5cea2117365eb55a87d6.tar.bz2 Chimère-8d2fb762f22d4899941b5cea2117365eb55a87d6.zip |
Imports: Manage overwrite optionaly
Diffstat (limited to 'chimere/tests.py')
-rw-r--r-- | chimere/tests.py | 81 |
1 files changed, 60 insertions, 21 deletions
diff --git a/chimere/tests.py b/chimere/tests.py index 20c0f29..d3dc3de 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -62,7 +62,21 @@ def subcategory_setup(): icon=icon, order=1, item_type='M',) - return [subcategory_1, subcategory_2] + + subcategory_3 = SubCategory.objects.create(category=category, + name='Subcategory 3', + available=True, + icon=icon, + order=1, + item_type='M',) + + subcategory_4 = SubCategory.objects.create(category=category, + name='Subcategory 4', + available=True, + icon=icon, + order=1, + item_type='M',) + return [subcategory_1, subcategory_2, subcategory_3, subcategory_4] def marker_setup(sub_categories=[]): if not sub_categories: @@ -121,50 +135,73 @@ class ImporterTest: nb = max([Marker.objects.filter(categories__pk=cat.pk).count(), Route.objects.filter(categories__pk=cat.pk).count()]) self.assertEqual(nb_by_cat[cat], nb) - # update for importer, awaited_nb in self.marker_importers: + importer.overwrite = True + importer.save() nb, nb_updated, res = importer.manager.get() if awaited_nb == None: continue self.assertEqual(nb, 0) + # manage overwrite + for importer, awaited_nb in self.marker_importers: + if not awaited_nb: + continue + # mimic the modification of one item + for cls in (Marker, Route): + items = cls.objects.filter( + categories=importer.categories.all()[0] + ).order_by('-pk').all() + if items.count(): + item = items.all()[0] + item.import_version = 99999 # fake version number + item.save() + # as when the import_version it is considered as an import + # modification force the modification flag + item.modified_since_import = True + item.save() + importer.overwrite = False + importer.save() + nb, nb_updated, res = importer.manager.get() + if awaited_nb == None: + continue + self.assertEqual(nb, 1) class KMLImporterTest(TestCase, ImporterTest): def setUp(self): - subcategory_1, subcategory_2 = subcategory_setup() + subcategories = subcategory_setup() importer1 = Importer.objects.create(importer_type='KML', source=test_dir_path+'tests/sample.kml', filtr="Category 1") - importer1.categories.add(subcategory_1) + importer1.categories.add(subcategories[0]) importer2 = Importer.objects.create(importer_type='KML', source=test_dir_path+'tests/sample.kml', filtr="Subcategory 1", associate_marker_to_way=True) - importer2.categories.add(subcategory_1) - importer2.categories.add(subcategory_2) + importer2.categories.add(subcategories[1]) importer3 = Importer.objects.create(importer_type='KML', source=test_path+'tests/sample.kml', filtr="Subcategory 3") - importer3.categories.add(subcategory_2) + importer3.categories.add(subcategories[2]) importer4 = Importer.objects.create(importer_type='KML', source=test_dir_path+'tests/sample.kml.zip', zipped=True) - importer4.categories.add(subcategory_1) + importer4.categories.add(subcategories[3]) self.marker_importers = [(importer1, 1), (importer2, 3), (importer3, 0), (importer4, 4)] class ShapefileImporterTest(TestCase, ImporterTest): def setUp(self): - self.subcategory_1, self.subcategory_2 = subcategory_setup() + self.subcategories = subcategory_setup() importer = Importer.objects.create(importer_type='SHP', source=test_dir_path+'tests/sample_nodes.shp.zip', zipped=True) - importer.categories.add(self.subcategory_1) + importer.categories.add(self.subcategories[0]) importer2 = Importer.objects.create(importer_type='SHP', source=test_dir_path+'tests/sample_ways.shp.zip', zipped=True) - importer2.categories.add(self.subcategory_2) + importer2.categories.add(self.subcategories[1]) self.marker_importers = [(importer, 29), (importer2, 5),] @@ -179,40 +216,42 @@ class ShapefileImporterTest(TestCase, ImporterTest): importer.associate_marker_to_way = True importer.save() nb, nb_updated, res = importer.manager.get() - nb = Marker.objects.filter(categories__pk=self.subcategory_2.pk).count() + nb = Marker.objects.filter(categories__pk=self.subcategories[1].pk + ).count() self.assertEqual(nb, 5) - Marker.objects.filter(categories__pk=self.subcategory_2.pk).delete() - Route.objects.filter(categories__pk=self.subcategory_2.pk).delete() + Marker.objects.filter(categories__pk=self.subcategories[1].pk).delete() + Route.objects.filter(categories__pk=self.subcategories[1].pk).delete() importer.associate_marker_to_way = False importer.save() nb, nb_updated, res = importer.manager.get() - nb = Marker.objects.filter(categories__pk=self.subcategory_2.pk).count() + nb = Marker.objects.filter(categories__pk=self.subcategories[1].pk + ).count() self.assertEqual(nb, 0) class OSMImporterTest(TestCase, ImporterTest): def setUp(self): - subcategory_1, subcategory_2 = subcategory_setup() + subcategories = subcategory_setup() markers = marker_setup() importer1 = Importer.objects.create(importer_type='OSM', source=test_dir_path+'tests/sample_nodes.osm') - importer1.categories.add(subcategory_1) + importer1.categories.add(subcategories[0]) importer2 = Importer.objects.create(importer_type='OSM', source=test_dir_path+'tests/sample_ways.osm') - importer2.categories.add(subcategory_2) + importer2.categories.add(subcategories[1]) self.marker_importers = [(importer1, 19), (importer2, 8)] class GeoRSSImporterTest(TestCase, ImporterTest): def setUp(self): - subcategory_1, subcategory_2 = subcategory_setup() + subcategories = subcategory_setup() importer1 = Importer.objects.create(importer_type='RSS', source=test_dir_path+'tests/georss_simple.xml') - importer1.categories.add(subcategory_1) + importer1.categories.add(subcategories[0]) importer2 = Importer.objects.create(importer_type='RSS', source=test_dir_path+'tests/eqs7day-M5.xml') - importer2.categories.add(subcategory_2) + importer2.categories.add(subcategories[1]) self.marker_importers = [(importer1, 1), (importer2, 32)] |