def test(self): f = VersionField() self.assertEqual(1, f.clean(VersionFieldSigner().sign(1))) self.assertEqual(1, f.clean(VersionFieldSigner().sign('1'))) self.assertEqual(0, f.clean(None)) self.assertEqual(0, f.clean('')) self.assertRaises(VersionError, f.clean, '100') self.assertRaises(VersionError, f.clean, VersionFieldSigner().sign(1.5))
def test_with_dummy_signer(self): f = VersionField(signer=DummySigner()) self.assertEqual(1, f.clean(1)) self.assertEqual(1, f.clean('1')) self.assertEqual(0, f.clean(None)) self.assertEqual(0, f.clean('')) self.assertRaises(VersionError, f.clean, 'aa:bb') self.assertRaises(VersionError, f.clean, 1.5)
def test_with_dummy_signer(self): f = VersionField(signer=DummySigner()) self.assertEqual(1, f.clean(1)) self.assertEqual(1, f.clean('1')) self.assertEqual(0, f.clean(None)) self.assertEqual(0, f.clean('')) self.assertRaisesMessage(SuspiciousOperation, "Version number seems tampered", f.clean, 'aa:bb') self.assertRaisesMessage(SuspiciousOperation, "Version number seems tampered", f.clean, 1.5)
def test(self): f = VersionField() self.assertEqual(1, f.clean(VersionFieldSigner().sign(1))) self.assertEqual(1, f.clean(VersionFieldSigner().sign('1'))) self.assertEqual(0, f.clean(None)) self.assertEqual(0, f.clean('')) self.assertRaisesMessage(SuspiciousOperation, "Version number seems tampered", f.clean, '100') self.assertRaisesMessage(SuspiciousOperation, "Version number seems tampered", f.clean, VersionFieldSigner().sign(1.5))
def test_dummy_signer(self): obj, __ = TestIssue3Model.objects.get_or_create(username='******') Form = modelform_factory( TestIssue3Model, type('xxx', (ConcurrentForm, ), {'revision': VersionField(signer=DummySigner())})) data = {'id': 1, 'revision': obj.revision} form = Form(data, instance=obj) self.assertTrue(form.is_valid(), form.non_field_errors())
def test_initial_value_with_custom_signer(self): Form = modelform_factory( TestIssue3Model, type('xxx', (ConcurrentForm, ), {'version': VersionField(signer=DummySigner())})) form = Form({'username': '******'}) self.assertHTMLEqual( str(form['version']), '<input type="hidden" value="" name="version" id="id_version" />') self.assertTrue(form.is_valid(), form.non_field_errors())
def test_with_wrong_signer(self): with self.settings(CONCURRENCY_FIELD_SIGNER='invalid.Signer'): with pytest.raises(ImproperlyConfigured): VersionField()