diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-10-28 13:40:59 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-10-28 13:40:59 +0100 |
commit | b52d37e7b8fc08e071659cff281c1c583034c352 (patch) | |
tree | 1ecad22e5f83a9a77a1dc40e3f9e0bc749acef83 | |
parent | fc10df61184f3d06137a2b6f062b94c70d621688 (diff) | |
download | Ishtar-b52d37e7b8fc08e071659cff281c1c583034c352.tar.bz2 Ishtar-b52d37e7b8fc08e071659cff281c1c583034c352.zip |
Imports: update MCC tests - fix m2m creation when not valu is provided
-rw-r--r-- | archaeological_context_records/tests.py | 1 | ||||
-rw-r--r-- | archaeological_finds/tests.py | 2 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 6 | ||||
-rw-r--r-- | ishtar_common/data_importer.py | 6 |
4 files changed, 11 insertions, 4 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index bccd859aa..2bd144c5e 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -86,6 +86,7 @@ class ImportContextRecordTest(ImportOperationTest): class ContextRecordInit(OperationInitTest): + test_operations = False def create_context_record(self, user=None, data={}): if not getattr(self, 'context_records', None): diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 34cacfe42..ccf821757 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -58,7 +58,7 @@ class ImportFindTest(ImportContextRecordTest): # doing manual connections ceram = models.MaterialType.objects.get(txt_idx='ceramic').pk - self.setTargetKey('find__material_types', 'ceramique', ceram) + self.setTargetKey('find__material_types', 'terre-cuite', ceram) impt.importation() if not test: return diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index eaf2f081b..e74f579ed 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -166,7 +166,7 @@ class ImportOperationTest(TestCase): self.assertTrue(current_nb == (old_nb + 2)) # and well imported last_parcels = models.Parcel.objects.order_by('-pk').all()[0:2] - external_ids = sorted(['XXXX', 'YY55']) + external_ids = sorted(['4200-59350-YY55', '4200-75101-XXXX']) parcel_numbers = sorted(['42', '55']) sections = sorted(['ZX', 'YY']) self.assertEqual(external_ids, @@ -184,13 +184,15 @@ class ImportOperationTest(TestCase): self.assertEqual(len(imported), len(last_parcels)) self.assertEqual(models.Parcel.objects.get(parcel_number='55', section='YY').external_id, - 'YY55') + '4200-59350-YY55') # delete associated parcel with the import deletion parcel_count = models.Parcel.objects.count() impt.delete() self.assertEqual(parcel_count - 2, models.Parcel.objects.count()) def testParseParcels(self): + if not self.test_operations: + return # the database needs to be initialised before importing from archaeological_operations.import_from_csv import parse_parcels # default_town = Town.objects.create(numero_insee="12345", diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index d4e527ec6..1251aaf4c 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1213,7 +1213,11 @@ class Importer(object): self.get_field(model, k, v, m2m_m2ms, c_c_path) if '__force_new' in v: created = v.pop('__force_new') - v = model.objects.create(**v) + has_values = bool([1 for k in v if v[k]]) + if has_values: + v = model.objects.create(**v) + else: + continue else: v['defaults'] = v.get('defaults', {}) v, created = model.objects.get_or_create( |