diff options
author | Jelle van der Waa <jelle@vdwaa.nl> | 2018-11-20 22:02:23 +0100 |
---|---|---|
committer | Jelle van der Waa <jelle@vdwaa.nl> | 2018-11-20 22:02:23 +0100 |
commit | 020e22b08641a6e50bdfdd614c2e3a06b37d0f5e (patch) | |
tree | 9312eeeaa43b5714b59ddb996ff4b050b94eff65 /news | |
parent | 598d992cb2b55ce0b6c84b2082b1c40c485f8184 (diff) | |
download | archweb-020e22b08641a6e50bdfdd614c2e3a06b37d0f5e.tar.gz archweb-020e22b08641a6e50bdfdd614c2e3a06b37d0f5e.zip |
news: Add tests for all news functionality
Diffstat (limited to 'news')
-rw-r--r-- | news/tests.py | 71 |
1 files changed, 70 insertions, 1 deletions
diff --git a/news/tests.py b/news/tests.py index efb721e7..8b06f98f 100644 --- a/news/tests.py +++ b/news/tests.py @@ -1,4 +1,10 @@ -from django.test import TestCase +from django.core import mail +from django.test import TestCase, TransactionTestCase +from django.contrib.auth.models import User + + +from news.models import News + class NewTest(TestCase): @@ -9,3 +15,66 @@ class NewTest(TestCase): def test_sitemap(self): response = self.client.get('/sitemap-news.xml') self.assertEqual(response.status_code, 200) + + def test_newsitem(self): + response = self.client.get('/news/404', follow=True) + self.assertEqual(response.status_code, 404) + + +class NewsCrud(TransactionTestCase): + def setUp(self): + password = 'test' + self.user = User.objects.create_superuser('admin', + 'admin@archlinux.org', + password) + self.client.post('/login/', { + 'username': self.user.username, + 'password': password + }) + + def tearDown(self): + News.objects.all().delete() + self.user.delete() + + def create(self, title='Bash broken', content='Broken in [testing]', announce=False): + data = { + 'title': title, + 'content': content, + } + if announce: + data['send_announce'] = 'on' + return self.client.post('/news/add/', data, follow=True) + + def testCreateItem(self): + title = 'Bash broken' + response = self.create(title) + self.assertEqual(response.status_code, 200) + + news = News.objects.first() + self.assertEqual(news.author, self.user) + self.assertEqual(news.title, title) + + def testView(self): + self.create() + news = News.objects.first() + + response = self.client.get(news.get_absolute_url()) + self.assertEqual(response.status_code, 200) + + def testRedirectId(self): + self.create() + news = News.objects.first() + + response = self.client.get('/news/{}'.format(news.id), follow=True) + self.assertEqual(response.status_code, 200) + + def testSendAnnounce(self): + title = 'New glibc' + self.create(title, announce=True) + self.assertEqual(len(mail.outbox), 1) + self.assertIn(title, mail.outbox[0].subject) + + def testPreview(self): + response = self.client.post('/news/preview/', {'data': '**body**'}, follow=True) + self.assertEqual(response.status_code, 200) + self.assertEqual('<p><strong>body</strong></p>', response.content) |