summaryrefslogtreecommitdiff
path: root/archaeological_finds/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-06-04 14:34:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-06-04 14:34:11 +0200
commitcd512c2f960743eddcddc268d991b931b9daee62 (patch)
tree15ec548a32b6cbd2c49bda686e4ff8ea0e7e0638 /archaeological_finds/tests.py
parent794c8c0f60d586d030d3da3c79bb80d4cae0e618 (diff)
downloadIshtar-cd512c2f960743eddcddc268d991b931b9daee62.tar.bz2
Ishtar-cd512c2f960743eddcddc268d991b931b9daee62.zip
Treatment: workon on basket update after treatment
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py81
1 files changed, 79 insertions, 2 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index ccf821757..f75e9cfa3 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -19,11 +19,13 @@
from django.conf import settings
from django.core.files.uploadedfile import SimpleUploadedFile
-from ishtar_common.models import ImporterType
+from django.test import TestCase
+from ishtar_common.models import ImporterType, IshtarUser
from archaeological_finds import models
-from archaeological_context_records.tests import ImportContextRecordTest
+from archaeological_context_records.tests import ImportContextRecordTest, \
+ ContextRecordInit
from ishtar_common import forms_common
@@ -67,3 +69,78 @@ class ImportFindTest(ImportContextRecordTest):
self.assertTrue(current_nb == (old_nb + 4))
self.assertEqual(
models.Find.objects.filter(material_types__pk=ceram).count(), 4)
+
+
+class FindInit(ContextRecordInit):
+ test_context_records = False
+
+ def create_finds(self, user=None, data_base={}, data={}):
+ if not getattr(self, 'finds', None):
+ self.finds = []
+ if not getattr(self, 'base_finds', None):
+ self.base_finds = []
+
+ default = {'label': "Base find"}
+ if not data_base.get('history_modifier'):
+ data_base['history_modifier'] = self.get_default_user()
+ if not data_base.get('context_record'):
+ data_base['context_record'] = self.get_default_context_record()
+
+ default.update(data_base)
+ base_find = models.BaseFind.objects.create(**default)
+ self.base_finds.append(base_find)
+
+ data["history_modifier"] = data_base["history_modifier"]
+ find = models.Find.objects.create(**data)
+ find.base_finds.add(base_find)
+ self.finds.append(find)
+ return self.finds, self.base_finds
+
+ def get_default_find(self):
+ return self.create_finds()[0]
+
+
+class PackagingTest(TestCase, FindInit):
+ fixtures = [settings.ROOT_PATH +
+ '../fixtures/initial_data.json',
+ settings.ROOT_PATH +
+ '../ishtar_common/fixtures/initial_data.json',
+ settings.ROOT_PATH +
+ '../archaeological_files/fixtures/initial_data.json',
+ settings.ROOT_PATH +
+ '../archaeological_operations/fixtures/initial_data-fr.json',
+ settings.ROOT_PATH +
+ '../archaeological_finds/fixtures/initial_data-fr.json',
+ ]
+ model = models.Find
+
+ def setUp(self):
+ self.create_finds({"label": u"Find 1"})
+ self.create_finds({"label": u"Find 2"})
+ self.basket = models.FindBasket.objects.create(
+ label="My basket", user=IshtarUser.objects.get(
+ pk=self.get_default_user().pk))
+ self.other_basket = models.FindBasket.objects.create(
+ label="My other basket", user=IshtarUser.objects.get(
+ pk=self.get_default_user().pk))
+ for find in self.finds:
+ self.basket.items.add(find)
+ self.other_basket.items.add(find)
+
+ def testPackaging(self):
+ treatment_type = models.TreatmentType.objects.get(txt_idx='packaging')
+ treatment = models.Treatment(treatment_type=treatment_type)
+ items_nb = models.Find.objects.count()
+ treatment.save(user=self.get_default_user(), items=self.basket)
+ self.assertEqual(items_nb + self.basket.items.count(),
+ models.Find.objects.count(),
+ msg="Packaging doesn't generate enough new finds")
+ # new version of the find is in the basket
+ for item in self.basket.items.all():
+ self.assertNotIn(
+ item, self.finds,
+ msg="Original basket have not been upgraded after packaging")
+ for item in self.other_basket.items.all():
+ self.assertNotIn(
+ item, self.finds,
+ msg="Other basket have not been upgraded after packaging")