summaryrefslogtreecommitdiff
path: root/archaeological_finds/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py113
1 files changed, 111 insertions, 2 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index a86890839..fc51cea70 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -34,7 +34,8 @@ from ishtar_common.models import Person, get_current_profile, UserProfile, \
from archaeological_context_records.models import Period, Dating, \
ContextRecord, DatingType, DatingQuality
from archaeological_finds import models, views
-from archaeological_warehouse.models import Warehouse, WarehouseType
+from archaeological_warehouse.models import Warehouse, WarehouseType, \
+ ContainerType, Container
from ishtar_common import forms_common
@@ -759,7 +760,7 @@ class FindPermissionTest(FindInit, TestCase):
class FindQATest(FindInit, TestCase):
- fixtures = FIND_FIXTURES
+ fixtures = WAREHOUSE_FIXTURES
model = models.Find
def setUp(self):
@@ -816,6 +817,114 @@ class FindQATest(FindInit, TestCase):
self.assertEqual(models.Find.objects.get(pk=find_1.pk).description,
base_desc_1 + u"\n" + extra_desc)
+ def test_packaging(self):
+ c = Client()
+ find_0 = self.finds[0]
+ find_1 = self.finds[1]
+ pks = u"{}-{}".format(find_0.pk, find_1.pk)
+ url = reverse('find-qa-packaging', args=[pks])
+ response = c.get(url)
+ self.assertRedirects(response, '/')
+
+ c = Client()
+ c.login(username=self.username, password=self.password)
+ response = c.get(url)
+ # warehouse profile must be activated
+ self.assertEqual(response.status_code, 404)
+
+ profile, created = IshtarSiteProfile.objects.get_or_create(
+ slug='default', active=True)
+ profile.warehouse = True
+ profile.save()
+ response = c.get(url)
+ self.assertEqual(response.status_code, 200)
+
+ c = Client()
+ c.login(username=self.alt_username, password=self.alt_password)
+ response = c.get(url)
+ self.assertEqual(response.status_code, 200)
+
+ main_warehouse = Warehouse.objects.create(
+ name="Main",
+ warehouse_type=WarehouseType.objects.all()[0]
+ )
+
+ container = Container.objects.create(
+ reference="Test", responsible=main_warehouse,
+ location=main_warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+ container2 = Container.objects.create(
+ reference="Test2", responsible=main_warehouse,
+ location=main_warehouse,
+ container_type=ContainerType.objects.all()[0]
+ )
+ packaging = models.TreatmentType.objects.get(txt_idx='packaging')
+ packaging.change_reference_location = True
+ packaging.save()
+
+ data_check_lst = [
+ ({
+ 'qa-packaging-container': container.pk,
+ 'qa-packaging-container_to_change': 'reference',
+ },
+ {
+ 'container_ref': container,
+ 'container': None
+ }, 0),
+ ({
+ 'qa-packaging-container': container2.pk,
+ 'qa-packaging-container_to_change': 'current',
+ },
+ {
+ 'container_ref': None,
+ 'container': container2
+ }, 0),
+ ({
+ 'qa-packaging-container': container.pk,
+ 'qa-packaging-container_to_change': 'current-and-reference',
+ },
+ {
+ 'container_ref': container,
+ 'container': container
+ }, 0),
+ ({
+ 'qa-packaging-container': container2.pk,
+ 'qa-packaging-container_to_change': 'reference',
+ 'qa-packaging-create_treatment': True,
+ 'qa-packaging-year': 2019,
+ 'qa-packaging-treatment_type': packaging.pk
+ },
+ {
+ 'container_ref': container2,
+ 'container': None
+ }, 1),
+ ]
+
+ for data, check, nb_treat in data_check_lst:
+ # reinit
+ find_0.container, find_0.container_ref = None, None
+ find_0.skip_history_when_saving = True
+ find_0.save()
+ find_1.container, find_1.container_ref = None, None
+ find_1.skip_history_when_saving = True
+ find_1.save()
+
+ init_nb_treat = models.Treatment.objects.count()
+
+ response = c.post(
+ reverse('find-qa-packaging', args=[pks]),
+ data)
+ self.assertRedirects(response, '/success/')
+ for k in check:
+ find = models.Find.objects.get(pk=find_0.pk)
+ self.assertEqual(getattr(find, k), check[k])
+ find = models.Find.objects.get(pk=find_1.pk)
+ self.assertEqual(getattr(find, k), check[k])
+
+ final_nb_treat = models.Treatment.objects.count()
+ self.assertEqual(init_nb_treat + nb_treat, final_nb_treat)
+
class FindHistoryTest(FindInit, TestCase):
fixtures = FIND_FIXTURES