diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-13 16:08:19 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-13 16:08:19 +0100 |
commit | 51f788fd4e81186be2f7b7b4459d3d90a7b47bf2 (patch) | |
tree | 232659156f76ff7664139d963dac8d8c68e1d43f /chimere/tests.py | |
parent | 70811d699e68c075ed3cae543cbb8b695d386730 (diff) | |
parent | 3aaae876d73a9c16d2961bea9ae2012ae0bc5b0e (diff) | |
download | Chimère-51f788fd4e81186be2f7b7b4459d3d90a7b47bf2.tar.bz2 Chimère-51f788fd4e81186be2f7b7b4459d3d90a7b47bf2.zip |
Merge branch 'master' into saclay
Conflicts:
chimere/admin.py
chimere/locale/fr/LC_MESSAGES/django.po
chimere/tests.py
chimere/utils.py
Diffstat (limited to 'chimere/tests.py')
-rw-r--r-- | chimere/tests.py | 103 |
1 files changed, 82 insertions, 21 deletions
diff --git a/chimere/tests.py b/chimere/tests.py index 790eb55..af342c5 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -63,7 +63,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: @@ -124,50 +138,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),] @@ -182,28 +219,30 @@ 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]) importer3 = Importer.objects.create(importer_type='OSM', source='http://open.mapquestapi.com/xapi/api/0.6/way'\ '[highway=motorway]'\ @@ -215,13 +254,13 @@ class OSMImporterTest(TestCase, ImporterTest): 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)] @@ -405,6 +444,28 @@ class RapprochementTest(TestCase): for k in new_vals: self.assertEqual(getattr(ref_marker, k), new_vals[k]) + def test_managed_modified_imported_markers(self): + ref_marker = self.markers[0] + new_vals = {'name':"Marker 1 - modified", + 'point':GEOSGeometry('SRID=4326;POINT(-4 48)')} + values = {'status':'I', 'ref_item':ref_marker, 'import_version':42} + values.update(new_vals) + modified_marker = Marker.objects.create(**values) + self.assertNotEqual(ref_marker.import_version, + modified_marker.import_version) + modified_marker.categories.add(ref_marker.categories.all()[0]) + response = self.client.post('/admin/chimere/marker/', + data={'action':['managed_modified'], + 'index':0, 'rapprochement':1, + 'name':1, 'point':1, + '_selected_action':[unicode(ref_marker.pk)] + }) + ref_marker = Marker.objects.get(pk=ref_marker.pk) + self.assertEqual(Marker.objects.filter(ref_item=ref_marker, + status='I').count(), 0) + for k in new_vals.keys() + ['import_version']: + self.assertEqual(getattr(ref_marker, k), values[k]) + def test_managed_modified_routes(self): ref_route = self.routes[0] new_vals = {'name':"Route 1 - modified", |