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", | 
