From 437c84816a9ba409eca5aaf3efe65be60e114b19 Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Thu, 23 Feb 2017 11:13:25 +0100 Subject: [PATCH] tests: add tests for backoffice (#13343) --- tests/test_manager.py | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 tests/test_manager.py diff --git a/tests/test_manager.py b/tests/test_manager.py new file mode 100644 index 0000000..026ca14 --- /dev/null +++ b/tests/test_manager.py @@ -0,0 +1,144 @@ +import os +import pytest + +from django.core.urlresolvers import reverse +from django.contrib.auth.models import User + +pytestmark = pytest.mark.django_db + +@pytest.fixture +def admin_user(): + try: + user = User.objects.get(username='admin') + except User.DoesNotExist: + user = User.objects.create_superuser('admin', email=None, password='admin') + return user + +def login(app, username='admin', password='admin'): + login_page = app.get('/login/') + login_form = login_page.forms[0] + login_form['username'] = username + login_form['password'] = password + resp = login_form.submit() + assert resp.status_int == 302 + return app + +def test_unlogged_access(app): + # connect while not being logged in + assert app.get('/', status=301).location == 'http://localhost:80/manage/' + assert app.get('/manage/', status=302).location == 'http://localhost:80/login/?next=/manage/' + +def test_access(app, admin_user): + app = login(app) + resp = app.get('/manage/', status=200) + assert 'New category' in resp.body + +def test_logout(app, admin_user): + app = login(app) + app.get('/logout/') + assert app.get('/', status=301).location == 'http://localhost:80/manage/' + +def test_create_category(app, admin_user): + app = login(app) + resp = app.get(reverse('manage')) + assert 'New category' in resp.content + category_page = resp.click('New category') + category_form = category_page.forms[0] + category_form['name'] = 'Alerts' + resp = category_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + resp = app.get('http://localhost:80/manage/') + assert 'Alerts' in resp.content + +def test_edit_category(app, admin_user): + app = login(app) + category_page = app.get(reverse('add_category')) + category_form = category_page.forms[0] + category_form['name'] = 'Alerts' + resp = category_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + resp = app.get('http://localhost:80/manage/') + assert 'Alerts' in resp.content + assert '0 announces' in resp.content + assert '0 subscriptions' in resp.content + resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'})) + assert 'Edit' in resp.content + edit_page = resp.click('Edit') + edit_form = edit_page.forms[0] + edit_form['name'] = 'New Alerts' + resp = edit_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/category/alerts/' + +def test_delete_category(app, admin_user): + app = login(app) + category_page = app.get(reverse('add_category')) + category_form = category_page.forms[0] + category_form['name'] = 'Alerts' + resp = category_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + resp = app.get('http://localhost:80/manage/') + assert 'Alerts' in resp.content + assert '0 announces' in resp.content + assert '0 subscriptions' in resp.content + resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'})) + assert 'Delete' in resp.content + delete_page = resp.click('Delete') + delete_form = delete_page.forms[0] + resp = delete_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + +def test_create_announce(app, admin_user): + app = login(app) + category_page = app.get(reverse('add_category')) + category_form = category_page.forms[0] + category_form['name'] = 'Alerts' + resp = category_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + resp = app.get('http://localhost:80/manage/') + assert 'Alerts' in resp.content + resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'})) + assert 'New announce' in resp.content + announce_page = resp.click('New announce') + announce_form = announce_page.forms[0] + announce_form['title'] = 'First announce' + announce_form['text'] = 'announce content' + resp = announce_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/category/alerts/' + resp = app.get('http://localhost:80/manage/category/alerts/') + assert 'First announce' in resp.content + + +def test_delete_announce(app, admin_user): + app = login(app) + category_page = app.get(reverse('add_category')) + category_form = category_page.forms[0] + category_form['name'] = 'Alerts' + resp = category_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/' + resp = app.get('http://localhost:80/manage/') + resp = resp.click(href=reverse('view_category', kwargs={'slug': 'alerts'})) + assert 'New announce' in resp.content + announce_page = resp.click('New announce') + announce_form = announce_page.forms[0] + announce_form['title'] = 'First announce' + announce_form['text'] = 'announce content' + resp = announce_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/category/alerts/' + resp = app.get('http://localhost:80/manage/category/alerts/') + assert 'First announce' in resp.content + resp = resp.click('First announce') + assert 'Delete' in resp.content + announce_delete_page = resp.click('Delete') + announce_delete_form = announce_delete_page.forms[0] + resp = announce_delete_form.submit() + assert resp.status_int == 302 + assert resp.location == 'http://localhost:80/manage/category/alerts/' -- 2.11.0