diff options
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)]  | 
