def testConfirmViaForm(self): form = EmailChangeForm({'email': '*****@*****.**'}, instance=self.user) self.assertTrue(form.is_valid()) defered = form.save() self.assertEquals(len(defered), LONG[1]) # refetch user-object from db before checking the email, # because django objects don't reflect db changes done # elsewhere user_obj = User.objects.get(username=self.user.username) self.assertEquals(user_obj.email, '*****@*****.**') # ======================== # in practice this is the boundary, where code excution will be defered. # ======================== confirm_form = ConfirmationForm({'token': defered}) self.assertTrue(confirm_form.is_valid()) obj = confirm_form.save() self.assertNotEqual(obj, False) # refetch user-object from db before checking the email, # because django objects don't reflect db changes done # elsewhere user_obj = User.objects.get(username=self.user.username) self.assertEquals(user_obj.email, '*****@*****.**')
def testFormPrefix(self): """ Testing the situation when deferred form has prefix. Prefixes also should be saved, otherwise form_input will not be accepted when save operation will be resumed. """ PREFIX = 'test_prefix' model = TestingModel.objects.create(pickle_field='none') model_form = TestingModelForm(instance=model, prefix=PREFIX) data = {f.html_name: str(f.value() + '-changed') for f in model_form} unprefixed_form = TestingModelForm(data, instance=model) self.assertFalse(unprefixed_form.is_valid()) model_form = TestingModelForm(data, instance=model, prefix=PREFIX) self.assertTrue(model_form.is_valid()) self.assertTrue(model_form.has_changed()) token = model_form.save() form = ConfirmationForm({'token': token}) self.assertTrue(form.is_valid()) action = DeferredAction.objects.get(token=token) resume_form = action.get_resume_form() self.assertEqual( resume_form.prefix, model_form.prefix, msg="Resume form has to have the same prefix as initial form") model = TestingModel.objects.get(pk=model.pk) self.assertEqual(model.pickle_field, 'none') form.save() model = TestingModel.objects.get(pk=model.pk) self.assertEqual(model.pickle_field, 'none-changed')
def testConfirmBogusViaForm(self): confirm_form = ConfirmationForm({'token': 'some-bogus-token-2'}) self.assertFalse(confirm_form.is_valid())