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.py58
1 files changed, 51 insertions, 7 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 2f485f36e..a86890839 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -17,6 +17,7 @@
# See the file COPYING for details.
+import datetime
import json
from django.conf import settings
@@ -875,6 +876,7 @@ class FindHistoryTest(FindInit, TestCase):
find.material_types.add(glass)
d1_txt, d2_txt = self._add_datings(find)
+ find = models.Find.objects.get(pk=find.pk)
self.assertIsNotNone(find.history_m2m)
self.assertIn('material_types', find.history_m2m)
self.assertIn(
@@ -886,6 +888,7 @@ class FindHistoryTest(FindInit, TestCase):
find.history_m2m['datings'],
[[d1_txt, d2_txt], # order do not
[d2_txt, d1_txt]]) # matter
+ self.assertEqual(find.history.count(), nb_hist + 1)
historical_material_types = find.history_m2m['material_types']
@@ -908,10 +911,7 @@ class FindHistoryTest(FindInit, TestCase):
self.assertEqual(find.history.all()[0].history_m2m['material_types'],
["glass"])
- def test_m2m_history_display(self):
- c = Client()
- user = self.get_default_user()
- find = self.finds[0]
+ def _init_m2m(self, find, user):
ceram = models.MaterialType.objects.get(txt_idx='ceramic').pk
glass = models.MaterialType.objects.get(txt_idx='glass').pk
@@ -924,7 +924,7 @@ class FindHistoryTest(FindInit, TestCase):
find.save()
find.material_types.add(ceram)
find.material_types.add(glass)
- self._add_datings(find)
+ self.d1_dct, self.d2_dct = self._add_datings(find)
find = models.Find.objects.get(pk=find.pk)
find.history_modifier = user
@@ -936,6 +936,12 @@ class FindHistoryTest(FindInit, TestCase):
find.datings.clear()
find.material_types.remove(ceram)
+ def test_m2m_history_display(self):
+ c = Client()
+ user = self.get_default_user()
+ find = self.finds[0]
+ self._init_m2m(find, user)
+
find = models.Find.objects.get(pk=find.pk)
history_date = find.history.order_by('-history_date').all()[
1].history_date.strftime('%Y-%m-%dT%H:%M:%S.%f')
@@ -960,14 +966,52 @@ class FindHistoryTest(FindInit, TestCase):
self.assertIn('class="card sheet"', response.content)
content = response.content.decode('utf-8')
self.assertIn(
- models.MaterialType.objects.get(txt_idx='ceramic').label, content)
+ models.MaterialType.objects.get(txt_idx='ceramic').label, content,
+ msg=u"ceramic not found in historical sheet")
self.assertIn("5001", content, msg=u"5001 not found in historical "
u"sheet")
self.assertIn(
Period.objects.get(txt_idx='neolithic').label, content)
def test_m2m_history_restore(self):
- pass
+ user = self.get_default_user()
+ find = self.finds[0]
+ self._init_m2m(find, user)
+
+ find = models.Find.objects.get(pk=find.pk)
+ ceram = models.MaterialType.objects.get(txt_idx='ceramic')
+ glass = models.MaterialType.objects.get(txt_idx='glass')
+
+ materials = list(find.material_types.all())
+ self.assertNotIn(ceram, materials)
+ self.assertIn(glass, materials)
+ self.assertEqual(list(find.datings.all()), [])
+
+ history_date = find.history.order_by('-history_date').all()[
+ 1].history_date
+ find.rollback(history_date)
+
+ find = models.Find.objects.get(pk=find.pk)
+ materials = list(find.material_types.all())
+ self.assertIn(ceram, materials)
+ self.assertIn(glass, materials)
+
+ current_datings = []
+ for dating in find.datings.all():
+ dating_dct = {}
+ for k in self.d1_dct.keys():
+ if not getattr(dating, k):
+ dating_dct[k] = ''
+ continue
+ dating_dct[k] = getattr(dating, k)
+ if hasattr(dating_dct[k], 'txt_idx'):
+ dating_dct[k] = dating_dct[k].txt_idx
+ dating_dct[k] = unicode(dating_dct[k])
+
+ current_datings.append(dating_dct)
+
+ self.assertIn(self.d1_dct, current_datings)
+ self.assertIn(self.d2_dct, current_datings)
class TreatmentTest(FindInit, TestCase):