diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-01 11:41:59 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-01 11:43:35 +0200 |
commit | 80152f2f2692fd576b55ab7e6adb3292770bbc68 (patch) | |
tree | 1ea8f3f4086f85f70074b4e124d2eb80c8242c90 /ishtar_common/tests.py | |
parent | 954951026722f59a7b9d988d8f01d34c2fb24096 (diff) | |
download | Ishtar-80152f2f2692fd576b55ab7e6adb3292770bbc68.tar.bz2 Ishtar-80152f2f2692fd576b55ab7e6adb3292770bbc68.zip |
Serialization: manage circular types - refactoring
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r-- | ishtar_common/tests.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index e292ae097..7e1948bf0 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -604,8 +604,15 @@ class SerializationTest(TestCase): module_name, model_name = k.split("__") module = importlib.import_module(module_name + ".models") model = getattr(module, model_name) - self.assertEqual(model.objects.count(), - len(json.loads(json_result[k]))) + current_count = model.objects.count() + serialization_count = len(json.loads(json_result[k])) + # has to be at least equal (can be superior for model with + # recursivity) + self.assertTrue( + serialization_count >= current_count, + msg="Serialization for model {}.{} failed. {} serialized {} " + "expected".format(module.__name__, model_name, + serialization_count, current_count)) def test_serialization_zip(self): zip_filename = type_serialization(archive=True) @@ -632,6 +639,11 @@ class SerializationTest(TestCase): restore_serialized(zip_filename) def test_type_restore(self): + from archaeological_context_records.models import RelationType as CRRT + from archaeological_operations.models import RelationType as OperationRT + cr_rel_type_nb = CRRT.objects.count() + ope_rel_type_nb = OperationRT.objects.count() + models.AuthorType.objects.create(label="Test", txt_idx="test") zip_filename = type_serialization(archive=True) @@ -644,6 +656,10 @@ class SerializationTest(TestCase): self.assertEqual( models.AuthorType.objects.filter(txt_idx="am-i-still-here").count(), 1) + self.assertEqual(cr_rel_type_nb, CRRT.objects.count()) + self.assertEqual(ope_rel_type_nb, OperationRT.objects.count()) + self.assertTrue(OperationRT.objects.filter( + inverse_relation__isnull=False).count()) models.AuthorType.objects.filter(txt_idx="am-i-still-here").delete() zip_filename = type_serialization(archive=True) @@ -656,6 +672,10 @@ class SerializationTest(TestCase): self.assertEqual( models.AuthorType.objects.filter(txt_idx="am-i-still-here").count(), 0) + self.assertEqual(cr_rel_type_nb, CRRT.objects.count()) + self.assertEqual(ope_rel_type_nb, OperationRT.objects.count()) + self.assertTrue(OperationRT.objects.filter( + inverse_relation__isnull=False).count()) class AccessControlTest(TestCase): |