def setUp(self): """ Contrived set of entries and tags in order to test most of the list functionality""" self.t1 = models.Tag(name='Tag 1', is_permanent=True) self.t1.save() self.t2 = models.Tag(name='Tag 2', is_permanent=True) self.t2.save() self.t3 = models.Tag(name='Tag 3', is_permanent=True) self.t3.save() self.t4 = models.Tag(name='Tag 4', is_permanent=True) self.t4.save() self.e1 = models.Entry(title="Entry 1") self.e1.save() self.e1.tags = [self.t1, self.t2, self.t3, self.t4] self.e2 = models.Entry(title="Entry 2") self.e2.save() self.e2.tags = [self.t2, self.t4] self.e3 = models.Entry(title="Entry 3") self.e3.save() self.e3.tags = [self.t3] self.e4 = models.Entry(title="Entry 4") self.e4.save() self.e4.tags = [self.t4] self.client = Client()
def test_wrong_class(self): entry = models.Entry(title='foo', body='bar') with self.assertRaisesRegex( ImproperlyConfigured, 'Error author backend must have "get_user" method Please define it in 1234', ): entry.save()
def test_unexistent_backend(self): entry = models.Entry(title='foo', body='bar') with self.assertRaisesRegex( ImproperlyConfigured, 'Module "author.backends" does not define a "FooBackend" author backend', ): entry.save()
def test_value_error(self): entry = models.Entry(title='foo', body='bar') with self.assertRaisesRegex( ImproperlyConfigured, 'Error importing author backend. Is AUTHOR_BACKEND a correctly defined?', ): entry.save()
def test_error_importing(self): entry = models.Entry(title='foo', body='bar') with self.assertRaisesRegex( ImproperlyConfigured, r'Error importing author backend foo: "No module named \'?fo\'?', ): entry.save()
def test_improperly_configured(self): """Test, that if author backend is missing, it throws error""" entry = models.Entry(title='foo', body='bar') with self.assertRaisesRegex( ImproperlyConfigured, r'Error "author.middlewares.AuthorDefaultBackendMiddleware" is not found ' 'in MIDDLEWARE_CLASSES nor MIDDLEWARE. It is required to use AuthorDefaultBackend', ): entry.save()
def test_with_author(self): """blog.Entry: with_author works correctly""" entry = models.Entry(title='foo', body='bar') entry.full_clean() entry.save() # None for AnonymousUser (AuthorDefaultBackend) self.assertEqual(entry.author, None) self.assertEqual(entry.updated_by, None)
def test_deletion(self): """blog.Entry: deletion works correctly""" entry = models.Entry(title='foo', body='bar') entry.full_clean() entry.save() num = models.Entry.objects.all().count() entry.delete() self.assertEqual(models.Entry.objects.all().count(), num - 1)
def test_creation(self): """blog.Entry: creation works correctly""" entry = models.Entry(title='foo', body='bar') entry.full_clean() self.assertEqual(entry.title, 'foo') self.assertEqual(entry.body, 'bar') entry.save() entry = models.Entry.objects.get(pk=entry.pk) self.assertEqual(entry.title, 'foo') self.assertEqual(entry.body, 'bar')
def test_validation(self): """blog.Entry: validation works correctly""" from django.core.exceptions import ValidationError entry = models.Entry(title='foo', body='bar') entry.full_clean() entry.save() entry.title = '' self.assertRaises(ValidationError, entry.full_clean) entry.body = '' self.assertRaises(ValidationError, entry.full_clean) entry.title = '*' * 100 self.assertRaises(ValidationError, entry.full_clean) entry.title = '!#$%&()' self.assertRaises(ValidationError, entry.full_clean)
def test_save(self): """Test that AuthorSystemBackend saves with default user""" user = User.objects.create(pk=1) entry = models.Entry(title='foo', body='bar') entry.save() self.assertEqual(entry.author, user)