Files
PyRIGS/conftest.py

79 lines
2.1 KiB
Python

from django.conf import settings
import django
import pytest
from django.core.management import call_command
from RIGS.models import VatRate, Profile
import random
from django.db import connection
from PyRIGS.tests import pages
import os
from selenium import webdriver
def pytest_configure():
settings.PASSWORD_HASHERS = (
'django.contrib.auth.hashers.MD5PasswordHasher',
)
settings.WHITENOISE_USE_FINDERS = True
settings.WHITENOISE_AUTOREFRESH = True
# TODO Why do we need this, with the above options enabled?
settings.STATICFILES_DIRS += [
os.path.join(settings.BASE_DIR, 'static/'),
]
django.setup()
@pytest.fixture # Overrides the one from pytest-django
def admin_user(admin_user):
admin_user.username="EventTest"
admin_user.first_name="Event"
admin_user.last_name="Test"
admin_user.initials="ETU"
admin_user.save()
return admin_user
@pytest.fixture
def logged_in_browser(live_server, admin_user, browser, db):
login_page = pages.LoginPage(browser.driver, live_server.url).open()
login_page.login(admin_user.username, "password")
yield browser
@pytest.fixture(scope='session')
def splinter_driver_kwargs():
options = webdriver.ChromeOptions()
options.add_argument("--window-size=1920,1080")
options.add_argument("--headless")
if settings.CI:
options.add_argument("--no-sandbox")
return {"options": options}
@pytest.fixture(scope='session')
def splinter_webdriver():
return 'chrome'
@pytest.fixture(scope='session')
def splinter_screenshot_dir():
return 'screenshots/'
@pytest.fixture(autouse=True) # Also enables DB access for all tests as a useful side effect
def vat_rate(db):
vat_rate = VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
yield vat_rate
vat_rate.delete()
def _has_transactional_marker(item):
db_marker = item.get_closest_marker("django_db")
if db_marker and db_marker.kwargs.get("transaction"):
return 1
return 0
def pytest_collection_modifyitems(items):
items.sort(key=_has_transactional_marker)