예제 #1
0
    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()
예제 #2
0
 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()
예제 #3
0
 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()
예제 #4
0
 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()
예제 #5
0
 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()
예제 #6
0
 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()
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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')
예제 #10
0
    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)
예제 #11
0
 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)