diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
| commit | 1e05946531d237dc954f46ddfc25a6b61c084a74 (patch) | |
| tree | 8b9137dd9b68121db86e4e22dfdb7b7016a6f1ad /archaeological_finds/tests.py | |
| parent | 4779acd3006e6d6b17babd13585a4d83fb8d2332 (diff) | |
| parent | 9eced41d76545bd2921605b7b81bd14b875ce541 (diff) | |
| download | Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.tar.bz2 Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.zip | |
Merge branch 'develop'
Diffstat (limited to 'archaeological_finds/tests.py')
| -rw-r--r-- | archaeological_finds/tests.py | 142 | 
1 files changed, 129 insertions, 13 deletions
| diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index a55e075b7..ae03b2ba4 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -215,8 +215,7 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):                      'treatment_type': None,                      'person': 1,  # doer                      'location': 1,  # associated warehouse -                    'year': 2016, -                    'target_is_basket': False +                    'year': 2016                  },                  'selecfind': {                      'pk': 1, @@ -243,6 +242,13 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):          trt_type = models.TreatmentType.objects.get(txt_idx='moving')          self.form_datas[0].set('basetreatment', 'treatment_type', trt_type.pk) +        completed, created = models.TreatmentState.objects.get_or_create( +            txt_idx='completed', defaults={"executed": True, "label": u"Done"} +        ) +        completed.executed = True +        completed.save() + +        self.form_datas[0].set('basetreatment', 'treatment_state', completed.pk)          self.find, base_find = self.get_default_find(force=True)          self.form_datas[0].form_datas['selecfind'][ @@ -258,9 +264,10 @@ class TreatmentWizardCreationTest(WizardTest, FindInit, TestCase):          treat = models.Treatment.objects.order_by('-pk').all()[0]          self.find = models.Find.objects.get(pk=self.find.pk)          self.assertEqual(models.Find.objects.filter( -            upstream_treatment=treat).count(), 1) -        self.assertEqual(self.find.downstream_treatment, -                         treat) +            treatments=treat).count(), 1) +        # TODO: test treatment with new find creation +        # self.assertEqual(self.find.downstream_treatment, +        #                 treat)  class ImportFindTest(ImportTest, TestCase): @@ -796,7 +803,8 @@ class FindQATest(FindInit, TestCase):              reverse('find-qa-bulk-update-confirm', args=[pks]),              {'qa_period': period, 'qa_description': extra_desc}          ) -        self.assertRedirects(response, '/success/') +        if response.status_code != 200: +            self.assertRedirects(response, '/success/')          self.assertIn(period,                        [dating.period.pk for dating in find_0.datings.all()])          self.assertIn(period, @@ -807,7 +815,7 @@ class FindQATest(FindInit, TestCase):                           base_desc_1 + u"\n" + extra_desc) -class PackagingTest(FindInit, TestCase): +class TreatmentTest(FindInit, TestCase):      fixtures = FIND_FIXTURES      model = models.Find @@ -832,18 +840,33 @@ class PackagingTest(FindInit, TestCase):              self.basket.items.add(find)              self.other_basket.items.add(find) -    def testPackaging(self): +    def test_packaging_with_new_find_creation(self):          treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') +        # make packaging a treatment with a new version of the find created +        treatment_type.create_new_find = True +        treatment_type.save() +          treatment = models.Treatment()          items_nb = models.Find.objects.count()          first_find = self.finds[0] -        treatment.save(user=self.get_default_user(), items=self.basket) +        completed, created = models.TreatmentState.objects.get_or_create( +            txt_idx='completed', defaults={"executed": True, "label": u"Done"} +        ) +        completed.executed = True +        completed.save() + +        treatment.treatment_state = completed +        treatment.save( +            user=self.get_default_user(), items=self.basket, +            treatment_type_list=[treatment_type], +        ) +        treatment.treatment_types.add(treatment_type) +          self.assertEqual(items_nb + self.basket.items.count(),                           models.Find.objects.count(),                           msg="Packaging doesn't generate enough new finds") -        treatment.treatment_types.add(treatment_type)          resulting_find = models.Find.objects.get(              upstream_treatment__upstream=first_find, @@ -866,15 +889,69 @@ class PackagingTest(FindInit, TestCase):                  item, self.finds,                  msg="Other basket have not been upgraded after packaging") -    def test_delete(self): -        # manage treatment deletion +    def test_simple_delete(self):          treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') +        treatment_type.create_new_find = False +        treatment_type.save() + +        nb_find = models.Find.objects.count() +          treatment = models.Treatment()          initial_find = self.finds[0] -        treatment.save(user=self.get_default_user(), items=self.basket) +        completed, created = models.TreatmentState.objects.get_or_create( +            txt_idx='completed', defaults={"executed": True, "label": u"Done"} +        ) +        completed.executed = True +        completed.save() + +        treatment.treatment_state = completed +        treatment.save( +            user=self.get_default_user(), items=self.basket, +            treatment_type_list=[treatment_type], +        )          treatment.treatment_types.add(treatment_type) +        self.assertEqual(nb_find, models.Find.objects.count()) + +        treatment.delete() +        self.assertEqual( +            models.Treatment.objects.filter(pk=treatment.pk).count(), 0) + +        q = models.Find.objects.filter(pk=initial_find.pk) +        # initial find not deleted +        self.assertEqual(q.count(), 1) +        initial_find = q.all()[0] +        self.assertEqual(initial_find.upstream_treatment, None) + +    def test_upstream_find_delete(self): +        treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') +        # make packaging a treatment with a new version of the find created +        treatment_type.create_new_find = True +        treatment_type.save() + +        nb_find = models.Find.objects.count() + +        treatment = models.Treatment() + +        initial_find = self.finds[0] +        completed, created = models.TreatmentState.objects.get_or_create( +            txt_idx='completed', defaults={"executed": True, "label": u"Done"} +        ) +        completed.executed = True +        completed.save() + +        treatment.treatment_state = completed +        treatment.save( +            user=self.get_default_user(), items=self.basket, +            treatment_type_list=[treatment_type], +        ) +        treatment.treatment_types.add(treatment_type) + +        nb_b = self.basket.items.count() +        self.assertEqual( +            nb_find + nb_b, models.Find.objects.count()) +          resulting_find = models.Find.objects.get(              upstream_treatment__upstream=initial_find,              base_finds__pk=initial_find.base_finds.all()[0].pk @@ -888,3 +965,42 @@ class PackagingTest(FindInit, TestCase):          self.assertEqual(q.count(), 1)          initial_find = q.all()[0]          self.assertEqual(initial_find.upstream_treatment, None) + +    def test_treatment_delete(self): +        treatment_type = models.TreatmentType.objects.get(txt_idx='packaging') +        treatment_type.create_new_find = True +        treatment_type.save() + +        nb_find = models.Find.objects.count() + +        treatment = models.Treatment() + +        initial_find = self.finds[0] +        completed, created = models.TreatmentState.objects.get_or_create( +            txt_idx='completed', defaults={"executed": True, "label": u"Done"} +        ) +        completed.executed = True +        completed.save() + +        treatment.treatment_state = completed +        treatment.save( +            user=self.get_default_user(), items=self.basket, +            treatment_type_list=[treatment_type], +        ) +        treatment.treatment_types.add(treatment_type) + +        nb_b = self.basket.items.count() +        self.assertEqual( +            nb_find + nb_b, models.Find.objects.count()) + +        treatment.delete() + +        self.assertEqual(nb_find, models.Find.objects.count()) + +        self.assertEqual( +            models.Treatment.objects.filter(pk=treatment.pk).count(), 0) +        q = models.Find.objects.filter(pk=initial_find.pk) +        # initial find not deleted +        self.assertEqual(q.count(), 1) +        initial_find = q.all()[0] +        self.assertEqual(initial_find.upstream_treatment, None) | 
