summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/tests.py16
-rw-r--r--chimere/utils.py11
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'