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( | 
