diff options
-rw-r--r-- | chimere/tests.py | 16 | ||||
-rw-r--r-- | chimere/utils.py | 11 |
2 files changed, 21 insertions, 6 deletions
diff --git a/chimere/tests.py b/chimere/tests.py index f256508..54c1acd 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -187,17 +187,29 @@ class KMLImporterTest(TestCase, ImporterTest): importer4 = Importer.objects.create(importer_type='KML', source=test_dir_path+'tests/sample.kml.zip', zipped=True, - default_description="Ma description") + default_description="Default description") importer4.categories.add(subcategories[3]) self.marker_importers = [(importer1, 1), (importer2, 3), (importer3, 0), (importer4, 4)] def test_defaultdescription(self): + Marker.objects.all().delete() importer = self.marker_importers[-1][0] + importer.overwrite = True + importer.save() importer.manager.get() - self.assertEqual(Marker.objects.order_by('-pk').all()[0].description, + last_marker = Marker.objects.order_by('-pk').all()[0] + self.assertEqual(last_marker.description, importer.default_description) + # don't overwrite description on update + new_desc = u"Description set by an user" + last_marker.description = new_desc + last_marker.save() + importer.manager.get() + last_marker = Marker.objects.order_by('-pk').all()[0] + self.assertEqual(last_marker.description, + new_desc) class ShapefileImporterTest(TestCase, ImporterTest): def setUp(self): diff --git a/chimere/utils.py b/chimere/utils.py index c7126f9..d1ea851 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -76,11 +76,9 @@ class ImportManager(object): import_key = unicode(import_key).replace(':', '^') if not values.get('name'): values['name'] = self.default_name - if not self.importer_instance.get_description and \ - self.importer_instance.default_description: - values['description'] = self.importer_instance.default_description if not key: key = self.importer_instance.importer_type + item = None if import_key or pk: dct_import = { 'import_key__icontains':'%s:%s;' % (key, import_key), @@ -102,7 +100,8 @@ class ImportManager(object): else: item = ref_item for k in values: - setattr(item, k, values[k]) + if values[k]: + setattr(item, k, values[k]) try: item.save() # force the modified_since_import status @@ -115,6 +114,10 @@ class ImportManager(object): except ObjectDoesNotExist: pass if not item: + if not self.importer_instance.get_description and \ + self.importer_instance.default_description: + values['description'] = \ + self.importer_instance.default_description values.update({ 'import_source':self.importer_instance.source}) values['status'] = 'I' |