diff options
| -rw-r--r-- | archaeological_context_records/tests.py | 21 | ||||
| -rw-r--r-- | archaeological_files/tests.py | 4 | ||||
| -rw-r--r-- | archaeological_finds/tests.py | 23 | ||||
| -rw-r--r-- | archaeological_operations/tests.py | 16 | ||||
| -rw-r--r-- | archaeological_warehouse/tests.py | 3 | ||||
| -rw-r--r-- | ishtar_common/serializers.py | 4 | ||||
| -rw-r--r-- | ishtar_common/tests.py | 83 | 
7 files changed, 87 insertions, 67 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index 8fee56c0e..354e41d55 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -40,28 +40,11 @@ from archaeological_context_records import models  from ishtar_common.utils import generate_relation_graph  from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ -    create_superuser, create_user, TestCase, AutocompleteTestBase, AcItem +    create_superuser, create_user, TestCase, AutocompleteTestBase, AcItem, \ +    CONTEXT_RECORD_FIXTURES, CONTEXT_RECORD_TOWNS_FIXTURES  from archaeological_context_records import views -CONTEXT_RECORD_FIXTURES = FILE_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_context_records/fixtures/initial_data-fr.json', -    '../archaeological_context_records/fixtures/' -    'initial_data_relation_type_norel-fr.json', -    '../archaeological_context_records/fixtures/' -    'initial_data_relation_type-fr.json', -] - -CONTEXT_RECORD_TOWNS_FIXTURES = FILE_TOWNS_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_context_records/fixtures/initial_data-fr.json', -    '../archaeological_context_records/fixtures/' -    'initial_data_relation_type_norel-fr.json', -    '../archaeological_context_records/fixtures/' -    'initial_data_relation_type-fr.json', -] -  class ImportContextRecordTest(ImportTest, TestCase):      fixtures = CONTEXT_RECORD_TOWNS_FIXTURES diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index 0b72d505a..117cd369d 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -32,8 +32,8 @@ from ishtar_common.models import Town, IshtarSiteProfile  from archaeological_files import models  from archaeological_operations.models import Parcel, ParcelOwner, ActType, \      AdministrativeAct -from archaeological_operations.tests import OperationInitTest, FileInit, \ -    FILE_TOWNS_FIXTURES +from ishtar_common.tests import FILE_TOWNS_FIXTURES +from archaeological_operations.tests import OperationInitTest, FileInit  def create_administrativact(user, fle): diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 8cde0f0d2..9d2ff8e8b 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -49,26 +49,11 @@ from archaeological_context_records.models import ContextRecord  from ishtar_common import forms_common  from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ -    TestCase, create_user, create_superuser, AutocompleteTestBase, AcItem -from archaeological_operations.tests import ImportTest, create_operation -from archaeological_context_records.tests import ContextRecordInit, \ +    TestCase, create_user, create_superuser, AutocompleteTestBase, AcItem, \ +    FIND_FIXTURES, FIND_TOWNS_FIXTURES, WAREHOUSE_FIXTURES, \      CONTEXT_RECORD_FIXTURES, CONTEXT_RECORD_TOWNS_FIXTURES - - -FIND_FIXTURES = CONTEXT_RECORD_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_finds/fixtures/initial_data-fr.json', -] - -FIND_TOWNS_FIXTURES = CONTEXT_RECORD_TOWNS_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_finds/fixtures/initial_data-fr.json', -] - -WAREHOUSE_FIXTURES = FIND_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_warehouse/fixtures/initial_data-fr.json', -] +from archaeological_operations.tests import ImportTest, create_operation +from archaeological_context_records.tests import ContextRecordInit  class FindInit(ContextRecordInit): diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 8e956c3ab..53ecba049 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -53,20 +53,8 @@ from archaeological_context_records.models import Unit, ContextRecord  from ishtar_common import forms_common  from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \      create_superuser, create_user, TestCase, OPERATION_FIXTURES, \ -    AutocompleteTestBase, AcItem - - -OPERATION_TOWNS_FIXTURES = \ -    OPERATION_FIXTURES + \ -    [settings.ROOT_PATH + '../ishtar_common/fixtures/test_towns.json'] - -FILE_FIXTURES = OPERATION_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_files/fixtures/initial_data-fr.json'] - -FILE_TOWNS_FIXTURES = OPERATION_TOWNS_FIXTURES + [ -    settings.ROOT_PATH + -    '../archaeological_files/fixtures/initial_data-fr.json'] +    AutocompleteTestBase, AcItem, OPERATION_TOWNS_FIXTURES, FILE_FIXTURES, \ +    FILE_TOWNS_FIXTURES  class FileInit(object): diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py index 3f4df9fad..07171ebb4 100644 --- a/archaeological_warehouse/tests.py +++ b/archaeological_warehouse/tests.py @@ -20,8 +20,7 @@  from archaeological_finds.tests import FindInit  from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \ -    TestCase -from archaeological_finds.tests import WAREHOUSE_FIXTURES +    TestCase, WAREHOUSE_FIXTURES  from ishtar_common.models import IshtarSiteProfile, SpatialReferenceSystem  from archaeological_warehouse import models, views, forms diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index fdc3a6da5..f71109374 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -32,8 +32,8 @@ def serialization_info():      }, indent=2) -def type_model_serialization(archive=False, return_empty_types=False, -                             archive_name=None): +def type_serialization(archive=False, return_empty_types=False, +                       archive_name=None):      """      Serialize all types models to JSON      Used for import and export scripts diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 3289ad8f6..25be97692 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -48,7 +48,8 @@ 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.serializers import type_serialization, \ +    SERIALIZATION_VERSION  from ishtar_common.utils import post_save_geo, update_data, move_dict_data, \      rename_and_simplify_media_name, try_fix_file @@ -70,6 +71,51 @@ OPERATION_FIXTURES = COMMON_FIXTURES + [      '../archaeological_operations/fixtures/initial_data_relation_type-fr.json',  ] +OPERATION_TOWNS_FIXTURES = \ +    OPERATION_FIXTURES + \ +    [settings.ROOT_PATH + '../ishtar_common/fixtures/test_towns.json'] + +FILE_FIXTURES = OPERATION_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_files/fixtures/initial_data-fr.json'] + +FILE_TOWNS_FIXTURES = OPERATION_TOWNS_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_files/fixtures/initial_data-fr.json'] + +CONTEXT_RECORD_FIXTURES = FILE_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_context_records/fixtures/initial_data-fr.json', +    '../archaeological_context_records/fixtures/' +    'initial_data_relation_type_norel-fr.json', +    '../archaeological_context_records/fixtures/' +    'initial_data_relation_type-fr.json', +    ] + +CONTEXT_RECORD_TOWNS_FIXTURES = FILE_TOWNS_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_context_records/fixtures/initial_data-fr.json', +    '../archaeological_context_records/fixtures/' +    'initial_data_relation_type_norel-fr.json', +    '../archaeological_context_records/fixtures/' +    'initial_data_relation_type-fr.json', +    ] + +FIND_FIXTURES = CONTEXT_RECORD_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_finds/fixtures/initial_data-fr.json', +    ] + +FIND_TOWNS_FIXTURES = CONTEXT_RECORD_TOWNS_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_finds/fixtures/initial_data-fr.json', +    ] + +WAREHOUSE_FIXTURES = FIND_FIXTURES + [ +    settings.ROOT_PATH + +    '../archaeological_warehouse/fixtures/initial_data-fr.json', +    ] +  def create_superuser():      username = 'username4277' @@ -548,13 +594,10 @@ class CacheTest(TestCase):  class SerializationTest(TestCase): -    fixtures = [settings.ROOT_PATH + -                '../fixtures/initial_data-auth-fr.json', -                settings.ROOT_PATH + -                '../ishtar_common/fixtures/initial_data-fr.json',] +    fixtures = COMMON_FIXTURES + WAREHOUSE_FIXTURES      def test_type_serialization(self): -        json_result = type_model_serialization() +        json_result = type_serialization()          for k in json_result.keys():              module_name, model_name = k.split("__")              module = importlib.import_module(module_name + ".models") @@ -562,11 +605,33 @@ class SerializationTest(TestCase):              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) +    def test_serialization_zip(self): +        zip_filename = type_serialization(archive=True) +        # only check the validity of the zip, the type content is tested above +        self.assertTrue(zipfile.is_zipfile(zip_filename))          with zipfile.ZipFile(zip_filename, "r") as zip_file:              self.assertIsNone(zip_file.testzip()) +            info = json.loads(zip_file.read("info.json").decode("utf-8")) +            self.assertEqual(info["serialize-version"], SERIALIZATION_VERSION) +            print(info) + +    def test_type_restore(self): +        zip_filename = type_serialization(archive=True) +        initial_count = {} +        with zipfile.ZipFile(zip_filename, "r") as zip_file: +            for json_filename in zip_file.namelist(): +                path = json_filename.split(os.sep) +                if len(path) != 2 or path[0] != "types": +                    continue +                filename = path[-1].split(".")[0] +                module_name, model_name = filename.split("__") +                module = importlib.import_module(module_name + ".models") +                model = getattr(module, model_name) +                initial_count[json_filename] = model.objects.count() +                model.objects.all().delete() +        print(initial_count) + +  class AccessControlTest(TestCase):  | 
