diff options
Diffstat (limited to 'archaeological_finds/tests.py')
| -rw-r--r-- | archaeological_finds/tests.py | 68 | 
1 files changed, 64 insertions, 4 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 45f178856..d5f763467 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -31,6 +31,7 @@ from django.contrib.auth.models import User, Permission, ContentType  from django.core.files import File  from django.core.files.uploadedfile import SimpleUploadedFile  from django.db.utils import IntegrityError +from django.test import LiveServerTestCase  from django.test.client import Client  from django.urls import reverse  from ishtar_common.models import ( @@ -626,15 +627,20 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):          #                 treat) -class ImportFindTest(ImportTest, FindInit, TestCase): +class BaseImportFindTest(ImportTest, FindInit, TestCase):      fixtures = FIND_TOWNS_FIXTURES + [          settings.LIB_BASE_PATH + "archaeological_finds/tests/import_loca_test.json",      ]      def setUp(self): -        super(ImportFindTest, self).setUp() +        super().setUp()          self.tmpdir = tempfile.TemporaryDirectory() +    def tearDown(self): +        self.tmpdir.cleanup() + + +class ImportFindTest(BaseImportFindTest):      def test_geo_import_csv(self):          self._test_geo_import("importer-GIS-find", 1) @@ -992,8 +998,62 @@ class ImportFindTest(ImportTest, FindInit, TestCase):          # check errors          self.assertEqual(len(impt.errors), 0) -    def tearDown(self): -        self.tmpdir.cleanup() + +class ImportFindLiveServerTest(LiveServerTestCase, BaseImportFindTest): + +    def setUp(self): +        import ishtar_common +        path = ["/"] + ishtar_common.__file__.split(os.sep)[:-1] + ["tests", "test.png"] +        shutil.copy( +            os.path.join(*path), +            os.path.join(settings.ROOT_PATH, "media", "image-1.jpg"), +        ) +        super().setUp() + +    def test_mcc_import_finds_with_image_link(self): +        self.init_context_record() + +        old_nb = models.BaseFind.objects.count() +        old_nb_find = models.Find.objects.count() +        MCC = ImporterType.objects.get(name="MCC - Mobilier") + +        col = ImporterColumn.objects.create(col_number=25, importer_type_id=MCC.pk) +        formater = FormaterType.objects.filter(formater_type="FileFormater").all()[0] +        ImportTarget.objects.create( +            target="documents__image", formater_type_id=formater.pk, column_id=col.pk +        ) +        mcc_file = open( +            settings.LIB_BASE_PATH + "archaeological_finds/tests/MCC-finds-example.csv", +            "rb", +            ) +        file_dict = { +            "imported_file": SimpleUploadedFile(mcc_file.name, mcc_file.read()), +        } +        post_dict = { +            "importer_type": MCC.pk, +            "skip_lines": 1, +            "encoding": "utf-8", +            "name": "init_find_import", +            "csv_sep": ",", +            "imported_media_link": f"{self.live_server_url}/media/" +        } +        form = forms_common.BaseImportForm( +            data=post_dict, files=file_dict, user=self.user +        ) +        form.is_valid() +        self.assertTrue(form.is_valid()) +        impt = form.save(self.ishtar_user) +        impt.initialize() +        impt.importation() +        # new finds has now been imported +        current_nb = models.BaseFind.objects.count() +        self.assertEqual(current_nb, (old_nb + 4)) +        current_nb = models.Find.objects.count() +        self.assertEqual(current_nb, (old_nb_find + 4)) +        images = [] +        for find in models.Find.objects.all(): +            images += [1 for im in find.images.all() if im.image.name] +        self.assertEqual(len(images), 1)  class FindTest(FindInit, TestCase):  | 
