diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-07-01 17:57:39 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-07-01 17:57:39 +0200 |
commit | 5b3bf3f1fb37ad2a79a2ad04138746a58452e6d6 (patch) | |
tree | 0537fe6e1dd8ed2a2e55bfb4d398044b6cabdd79 /archaeological_finds | |
parent | 18f8006b70d52bbafe5ab75478f1f963aaf7636f (diff) | |
download | Ishtar-5b3bf3f1fb37ad2a79a2ad04138746a58452e6d6.tar.bz2 Ishtar-5b3bf3f1fb37ad2a79a2ad04138746a58452e6d6.zip |
Fix bad M2M renitialization on wizards (refs #4963)
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/tests.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index cfdcb1585..b376a34ff 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -301,6 +301,79 @@ class FindWizardCreationTest(WizardTest, FindInit, TestCase): self.assertEqual(f.datings.count(), 1) +class FindWizardModificationTest(WizardTest, FindInit, TestCase): + fixtures = WAREHOUSE_FIXTURES + url_name = 'find_modification' + wizard_name = url_name + '_wizard' + steps = views.find_modification_steps + redirect_url = "/find_modification/selec-find_modification?open_item=" \ + "{last_id}" + model = models.Find + form_datas = [ + FormData( + 'Find modification', + form_datas={ + 'selec': {'pk': ''}, + 'selecrecord': { + "get_first_base_find__context_record": "" + }, + 'find-find_modification': { + 'label': 'hop', + 'checked': 'NC', + 'check_date': '2016-01-01' + }, + 'dating-find_modification': [ + { + 'period': None, + 'start_date': '', + 'end_date': '', + }, + ] + }, + ignored=['preservation-find_modification', + 'selecw-find_modification', + 'simplefind-find_modification'] + ) + ] + + def pre_wizard(self): + find, __ = self.get_default_find() + self.find = find + find.label = "base-hop" + find.check_date = "2020-07-01" + find.save() + data = self.form_datas[0].form_datas + + data['selec']['pk'] = find.pk + data['selecrecord']['get_first_base_find__context_record'] = \ + find.base_finds.all()[0].pk + + self.period = Period.objects.all()[0] + self.period2 = Period.objects.all()[1] + + find.datings.add(Dating.objects.create( + period=self.period, start_date='0', end_date='200')) + find.datings.add(Dating.objects.create(period=self.period2)) + + data['dating-find_modification'][0]['period'] = self.period.pk + self.find_number = models.Find.objects.count() + self.basefind_number = models.BaseFind.objects.count() + super(FindWizardModificationTest, self).pre_wizard() + + def post_wizard(self): + # no creation + self.assertEqual(models.BaseFind.objects.count(), + self.basefind_number) + self.assertEqual(models.Find.objects.count(), + self.find_number) + f = models.Find.objects.get(pk=self.find.pk) + self.assertEqual(f.datings.count(), 1) + dating = f.datings.all()[0] + self.assertEqual(dating.period, self.period) + self.assertEqual(dating.end_date, None) + self.assertEqual(dating.start_date, None) + + class FindWizardDeletionWithWarehouseModTest(WizardTest, FindInit, TestCase): fixtures = WAREHOUSE_FIXTURES url_name = 'find_deletion' |