diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-29 15:12:00 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-01 10:32:52 +0200 |
commit | aff5e9ac058d49a6184fa2e635604f3f4ef8a03f (patch) | |
tree | 35e8ebc417fd322f6e42b4d476b1086f9ead3f08 /ishtar_common/tests.py | |
parent | 0390b3d1e5f7724692129d88e7a62c807bf6cbc6 (diff) | |
download | Ishtar-aff5e9ac058d49a6184fa2e635604f3f4ef8a03f.tar.bz2 Ishtar-aff5e9ac058d49a6184fa2e635604f3f4ef8a03f.zip |
Serialization: serialize types for import/export
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r-- | ishtar_common/tests.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index b056359ec..3289ad8f6 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -20,11 +20,13 @@ from bs4 import BeautifulSoup as Soup import csv import datetime +import importlib import io import json import os import shutil from io import StringIO +import zipfile from django.apps import apps @@ -46,6 +48,7 @@ from django.test.runner import DiscoverRunner from ishtar_common import models from ishtar_common import views from ishtar_common.apps import admin_site +from ishtar_common.serializers import type_model_serialization from ishtar_common.utils import post_save_geo, update_data, move_dict_data, \ rename_and_simplify_media_name, try_fix_file @@ -544,6 +547,28 @@ class CacheTest(TestCase): self.assertIn(b'href="/operation_modification/', response.content) +class SerializationTest(TestCase): + fixtures = [settings.ROOT_PATH + + '../fixtures/initial_data-auth-fr.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_data-fr.json',] + + def test_type_serialization(self): + json_result = type_model_serialization() + for k in json_result.keys(): + 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]))) + + def test_type_serialization_zip(self): + # only check the validity of the zip, the content is tested above + zip_filename = type_model_serialization(archive=True) + with zipfile.ZipFile(zip_filename, "r") as zip_file: + self.assertIsNone(zip_file.testzip()) + + class AccessControlTest(TestCase): def test_administrator(self): admin, created = models.PersonType.objects.get_or_create( |