summaryrefslogtreecommitdiffstats
path: root/news
diff options
context:
space:
mode:
authorJelle van der Waa <jelle@vdwaa.nl>2018-11-20 22:02:23 +0100
committerJelle van der Waa <jelle@vdwaa.nl>2018-11-20 22:02:23 +0100
commit020e22b08641a6e50bdfdd614c2e3a06b37d0f5e (patch)
tree9312eeeaa43b5714b59ddb996ff4b050b94eff65 /news
parent598d992cb2b55ce0b6c84b2082b1c40c485f8184 (diff)
downloadarchweb-020e22b08641a6e50bdfdd614c2e3a06b37d0f5e.tar.gz
archweb-020e22b08641a6e50bdfdd614c2e3a06b37d0f5e.zip
news: Add tests for all news functionality
Diffstat (limited to 'news')
-rw-r--r--news/tests.py71
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)