|
| 1 | +from news.models import News |
| 2 | + |
| 3 | +from django.core import mail |
| 4 | + |
| 5 | + |
| 6 | +def create(admin_client, title='Bash broken', content='Broken in [testing]', announce=False): |
| 7 | + data = { |
| 8 | + 'title': title, |
| 9 | + 'content': content, |
| 10 | + } |
| 11 | + if announce: |
| 12 | + data['send_announce'] = 'on' |
| 13 | + return admin_client.post('/news/add/', data, follow=True) |
| 14 | + |
| 15 | + |
| 16 | +def test_create_item(db, admin_client, admin_user): |
| 17 | + title = 'Bash broken' |
| 18 | + response = create(admin_client, title) |
| 19 | + assert response.status_code == 200 |
| 20 | + |
| 21 | + news = News.objects.first() |
| 22 | + |
| 23 | + assert news.author == admin_user |
| 24 | + assert news.title == title |
| 25 | + |
| 26 | + |
| 27 | +def test_view(db, admin_client): |
| 28 | + create(admin_client) |
| 29 | + news = News.objects.first() |
| 30 | + |
| 31 | + response = admin_client.get(news.get_absolute_url()) |
| 32 | + assert response.status_code == 200 |
| 33 | + |
| 34 | + |
| 35 | +def test_redirect_id(db, admin_client): |
| 36 | + create(admin_client) |
| 37 | + news = News.objects.first() |
| 38 | + |
| 39 | + response = admin_client.get('/news/{}'.format(news.id), follow=True) |
| 40 | + assert response.status_code == 200 |
| 41 | + |
| 42 | + |
| 43 | +def test_send_announce(db, admin_client): |
| 44 | + title = 'New glibc' |
| 45 | + create(admin_client, title, announce=True) |
| 46 | + assert len(mail.outbox) == 1 |
| 47 | + assert title in mail.outbox[0].subject |
| 48 | + |
| 49 | + |
| 50 | +def test_preview(db, admin_client): |
| 51 | + response = admin_client.post('/news/preview/', {'data': '**body**'}, follow=True) |
| 52 | + assert response.status_code == 200 |
| 53 | + assert '<p><strong>body</strong></p>' == response.content.decode() |
0 commit comments