mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 13:32:15 +00:00
78 lines
2.1 KiB
Python
78 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
|
|
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.is_approved = True
|
|
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)
|