diff options
Diffstat (limited to 'archaeological_finds/tests.py')
| -rw-r--r-- | archaeological_finds/tests.py | 58 | 
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): | 
