From 3105846ae556ae5898a87df84c6db6d26f45349d Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 9 May 2019 19:43:27 +0200 Subject: [PATCH 1/2] tests: share login() and admin_user() (#32876) --- tests/conftest.py | 7 +++++++ tests/test_emails.py | 16 ++++++++-------- tests/test_manager.py | 7 ------- tests/test_matomo_views.py | 19 ++----------------- 4 files changed, 17 insertions(+), 32 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index acc479a..765f4f9 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,6 +2,8 @@ import pytest import django_webtest +from django.contrib.auth.models import User + @pytest.fixture def app(request): @@ -9,3 +11,8 @@ def app(request): wtm._patch_settings() request.addfinalizer(wtm._unpatch_settings) return django_webtest.DjangoTestApp() + + +@pytest.fixture +def admin_user(db): + return User.objects.create_superuser('admin', email=None, password='admin') diff --git a/tests/test_emails.py b/tests/test_emails.py index b922685..b66a504 100644 --- a/tests/test_emails.py +++ b/tests/test_emails.py @@ -95,28 +95,28 @@ def test_validate_email_address_bypass(settings): def test_invalid_address(client, admin_user): - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'foobar'}) assert response.status_code == 200 assert 'Enter a valid email address' in response.content def test_unkown_address(client, admin_user, dns_resolver, smtp_server): - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@unknown.com'}) assert response.status_code == 200 assert 'Email address not found' in response.content def test_kown_address_nospf(client, admin_user, dns_resolver, smtp_server): - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example.com'}, follow=True) assert response.status_code == 200 assert 'Emails settings have been updated. It will take a few seconds to be effective.' in response.content def test_spf_allow_all_mail(client, admin_user, dns_resolver, smtp_server, settings): - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example-spf-allow-all.com'}, follow=True) assert response.status_code == 200 assert 'Emails settings have been updated. It will take a few seconds to be effective.' in response.content @@ -124,7 +124,7 @@ def test_spf_allow_all_mail(client, admin_user, dns_resolver, smtp_server, setti def test_invalid_spf(client, admin_user, dns_resolver, smtp_server, settings): settings.ALLOWED_SPF_RECORDS = ['include:example.com'] - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example-invalid-spf.com'}) assert response.status_code == 200 assert 'No suitable SPF record found' in response.content @@ -133,7 +133,7 @@ def test_invalid_spf(client, admin_user, dns_resolver, smtp_server, settings): def test_strict_nospf(client, admin_user, dns_resolver, smtp_server, monkeypatch, settings): settings.ALLOWED_SPF_RECORDS = ['include:allowed_mx.com'] monkeypatch.setattr('hobo.emails.validators.validate_email_spf.__defaults__', (True,)) - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example.com'}, follow=True) assert response.status_code == 200 assert 'No suitable SPF record found' in response.content @@ -141,7 +141,7 @@ def test_strict_nospf(client, admin_user, dns_resolver, smtp_server, monkeypatch def test_valid_spf(client, admin_user, dns_resolver, smtp_server, settings): settings.ALLOWED_SPF_RECORDS = ['include:allowed_mx.com'] - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example-spf.com'}, follow=True) assert response.status_code == 200 assert 'Emails settings have been updated. It will take a few seconds to be effective.' in response.content @@ -149,7 +149,7 @@ def test_valid_spf(client, admin_user, dns_resolver, smtp_server, settings): def test_no_spf_validation(client, admin_user, dns_resolver, smtp_server, settings): settings.ALLOWED_SPF_RECORDS = [] - client.post('/login/', {'username': 'admin', 'password': 'password'}) + client.post('/login/', {'username': 'admin', 'password': 'admin'}) response = client.post('/emails/', {'default_from_email': 'john.doe@example-invalid-spf.com'}, follow=True) assert response.status_code == 200 assert 'Emails settings have been updated. It will take a few seconds to be effective.' in response.content diff --git a/tests/test_manager.py b/tests/test_manager.py index c1e3c32..a63a832 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -12,13 +12,6 @@ from hobo.wsgi import application 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/') diff --git a/tests/test_matomo_views.py b/tests/test_matomo_views.py index 723e9ba..4e2645a 100644 --- a/tests/test_matomo_views.py +++ b/tests/test_matomo_views.py @@ -13,6 +13,8 @@ from django.test import override_settings from hobo.environment.models import Variable, Wcs, Combo, Fargo from hobo.wsgi import application +from manager import login + pytestmark = pytest.mark.django_db CONFIG = {'URL': 'https://matomo.test', @@ -62,23 +64,6 @@ JAVASCRIPT_TAG = """ """ -@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(): # connect while not being logged in app = TestApp(application) -- 2.20.1