def test_change_lab_with_perms(self): data = model_to_dict(self.study) data["lab"] = self.second_lab.id form = StudyEditForm(data=data, instance=self.study, user=self.study_admin) # make sure clean is actually called before moving on! form.is_valid() self.assertEqual(form.cleaned_data["lab"].id, self.second_lab.id) self.assertNotIn("lab", form.errors)
def test_change_lab_without_perms(self): data = model_to_dict(self.study) data["lab"] = self.second_lab.id form = StudyEditForm(data=data, instance=self.study, user=self.study_designer) # make sure clean is actually called before moving on! form.is_valid() # Field is disabled, rather than limiting options, so just check cleaned data is unchanged self.assertEqual(form.cleaned_data["lab"].id, self.study.lab.id)
def test_change_to_invalid_lab(self): data = model_to_dict(self.study) data["lab"] = self.other_lab.id form = StudyEditForm(data=data, instance=self.study, user=self.study_admin) form.is_valid() self.assertIn("lab", form.errors) self.assertIn( "Select a valid choice. That choice is not one of the available choices.", form.errors["lab"], )
def test_valid_structure_accepted(self): data = model_to_dict(self.study) structure_text = """{ "frames": {"frame-a": {}, "frame-b": {}}, "sequence": ["frame-a", "frame-b"] }""" data["structure"] = structure_text form = StudyEditForm(data=data, instance=self.study, user=self.study_designer) self.assertNotIn("structure", form.errors) form.is_valid() self.assertDictEqual( form.cleaned_data["structure"], { "frames": { "frame-a": {}, "frame-b": {} }, "sequence": ["frame-a", "frame-b"], "exact_text": structure_text, }, )