Potentially fix tests, init splinter

This commit is contained in:
2021-02-13 18:42:56 +00:00
parent 8204fdae1f
commit 2396e27943
5 changed files with 102 additions and 20 deletions

View File

@@ -78,6 +78,7 @@ zipp = "==3.4.0"
"zope.proxy" = "==4.3.5" "zope.proxy" = "==4.3.5"
"zope.schema" = "==6.0.1" "zope.schema" = "==6.0.1"
sentry-sdk = "*" sentry-sdk = "*"
pytest-splinter = "*"
[dev-packages] [dev-packages]
pycodestyle = "*" pycodestyle = "*"

60
Pipfile.lock generated
View File

@@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "d8a6e0dad40718af879d0bb1a932892ab6aec5405bdc875bf9499d1ebcc1499b" "sha256": "5829b746578681f0e8c44e47a0a07d896b2626923f2986ef51e6198dc069e508"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
@@ -32,6 +32,14 @@
"index": "pypi", "index": "pypi",
"version": "==3.3.1" "version": "==3.3.1"
}, },
"attrs": {
"hashes": [
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.3.0"
},
"backports.tempfile": { "backports.tempfile": {
"hashes": [ "hashes": [
"sha256:05aa50940946f05759696156a8c39be118169a0e0f94a49d0bb106503891ff54", "sha256:05aa50940946f05759696156a8c39be118169a0e0f94a49d0bb106503891ff54",
@@ -306,6 +314,13 @@
"index": "pypi", "index": "pypi",
"version": "==3.4.0" "version": "==3.4.0"
}, },
"iniconfig": {
"hashes": [
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
"sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"
],
"version": "==1.1.1"
},
"lxml": { "lxml": {
"hashes": [ "hashes": [
"sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d", "sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d",
@@ -391,6 +406,14 @@
"index": "pypi", "index": "pypi",
"version": "==1.0.2" "version": "==1.0.2"
}, },
"packaging": {
"hashes": [
"sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5",
"sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.9"
},
"pep517": { "pep517": {
"hashes": [ "hashes": [
"sha256:3985b91ebf576883efe5fa501f42a16de2607684f3797ddba7202b71b7d0da51", "sha256:3985b91ebf576883efe5fa501f42a16de2607684f3797ddba7202b71b7d0da51",
@@ -544,6 +567,14 @@
"index": "pypi", "index": "pypi",
"version": "==2.8.6" "version": "==2.8.6"
}, },
"py": {
"hashes": [
"sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3",
"sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.10.0"
},
"pygments": { "pygments": {
"hashes": [ "hashes": [
"sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435", "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435",
@@ -575,6 +606,21 @@
"index": "pypi", "index": "pypi",
"version": "==2.2.0" "version": "==2.2.0"
}, },
"pytest": {
"hashes": [
"sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9",
"sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"
],
"markers": "python_version >= '3.6'",
"version": "==6.2.2"
},
"pytest-splinter": {
"hashes": [
"sha256:16d93db719bcad19342935c1707b5c3ec7e34d9ae10df683f6fc2e9e982ddb39"
],
"index": "pypi",
"version": "==3.3.1"
},
"python-dateutil": { "python-dateutil": {
"hashes": [ "hashes": [
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
@@ -670,11 +716,10 @@
}, },
"sentry-sdk": { "sentry-sdk": {
"hashes": [ "hashes": [
"sha256:0a711ec952441c2ec89b8f5d226c33bc697914f46e876b44a4edd3e7864cf4d0", "sha256:3693cb47ba8d90c004ac002425770b32aaf0c83a846ec48e2d1364e7db1d072d"
"sha256:737a094e49a529dd0fdcaafa9e97cf7c3d5eb964bd229821d640bc77f3502b3f"
], ],
"index": "pypi", "index": "pypi",
"version": "==0.19.5" "version": "==0.20.1"
}, },
"simplejson": { "simplejson": {
"hashes": [ "hashes": [
@@ -743,6 +788,13 @@
"index": "pypi", "index": "pypi",
"version": "==2.1" "version": "==2.1"
}, },
"splinter": {
"hashes": [
"sha256:459e39e7a9f7572db6f1cdb5fdc5ccfc6404f021dccb969ee6287be2386a40db",
"sha256:7e5e69c5b76ada909283465cdc3636e2632f7e557932ce96ab9c0432b0b32f7f"
],
"version": "==0.14.0"
},
"sqlparse": { "sqlparse": {
"hashes": [ "hashes": [
"sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0", "sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0",

View File

@@ -651,6 +651,21 @@ class TestCalendar(BaseRigboardTest):
self.assertIn(target_date.strftime("%m"), self.driver.current_url) self.assertIn(target_date.strftime("%m"), self.driver.current_url)
def test_ra_edit(logged_in_browser, live_server, ra):
page = pages.EditRiskAssessment(logged_in_browser.driver, live_server.url, pk=ra.pk).open()
page.nonstandard_equipment = nse = True
page.general_notes = gn = "There are some notes, but I've not written them here as that would be helpful"
page.submit()
assert not page.success
page.supervisor_consulted = True
page.submit()
assert page.success
# Check that data is right
ra = models.RiskAssessment.objects.get(pk=ra.pk)
assert ra.general_notes == gn
assert ra.nonstandard_equipment == nse
@screenshot_failure_cls @screenshot_failure_cls
class TestHealthAndSafety(BaseRigboardTest): class TestHealthAndSafety(BaseRigboardTest):
def setUp(self): def setUp(self):
@@ -776,20 +791,6 @@ class TestHealthAndSafety(BaseRigboardTest):
self.page = pages.CreateRiskAssessment(self.driver, self.live_server_url, event_id=self.testEvent.pk).open() self.page = pages.CreateRiskAssessment(self.driver, self.live_server_url, event_id=self.testEvent.pk).open()
self.assertIn('edit', self.driver.current_url) self.assertIn('edit', self.driver.current_url)
def test_ra_edit(self):
self.page = pages.EditRiskAssessment(self.driver, self.live_server_url, pk=self.testRA.pk).open()
self.page.nonstandard_equipment = nse = True
self.page.general_notes = gn = "There are some notes, but I've not written them here as that would be helpful"
self.page.submit()
self.assertFalse(self.page.success)
self.page.supervisor_consulted = True
self.page.submit()
self.assertTrue(self.page.success)
# Check that data is right
ra = models.RiskAssessment.objects.get(pk=self.testRA.pk)
self.assertEqual(ra.general_notes, gn)
self.assertEqual(ra.nonstandard_equipment, nse)
def test_ec_create_small(self): def test_ec_create_small(self):
self.page = pages.CreateEventChecklist(self.driver, self.live_server_url, event_id=self.testEvent2.pk).open() self.page = pages.CreateEventChecklist(self.driver, self.live_server_url, event_id=self.testEvent2.pk).open()

View File

@@ -30,6 +30,6 @@ def test_cable(db, category, status):
@pytest.fixture @pytest.fixture
def test_asset(db, category, status): def test_asset(db, category, status):
asset = models.Asset.objects.create(asset_id="91991", description="Spaceflower", status=status, category=category, date_acquired=datetime.date(1991, 12, 26)) asset, created = models.Asset.objects.get_or_create(asset_id="91991", description="Spaceflower", status=status, category=category, date_acquired=datetime.date(1991, 12, 26))
yield asset yield asset
asset.delete() asset.delete()

View File

@@ -2,9 +2,12 @@ from django.conf import settings
import django import django
import pytest import pytest
from django.core.management import call_command from django.core.management import call_command
from RIGS.models import VatRate from RIGS.models import VatRate, Profile
import random import random
from django.db import connection from django.db import connection
from PyRIGS.tests import pages
import os
from selenium import webdriver
def pytest_configure(): def pytest_configure():
@@ -13,9 +16,34 @@ def pytest_configure():
) )
settings.WHITENOISE_USE_FINDERS = True settings.WHITENOISE_USE_FINDERS = True
settings.WHITENOISE_AUTOREFRESH = 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() django.setup()
@pytest.fixture
def logged_in_browser(live_server, browser):
profile = Profile(
username="EventTest", first_name="Event", last_name="Test", initials="ETU", is_superuser=True)
profile.set_password("EventTestPassword")
profile.save()
login_page = pages.LoginPage(browser.driver, live_server.url).open()
login_page.login("EventTest", "EventTestPassword")
return 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') @pytest.fixture(scope='session')
def splinter_webdriver(): def splinter_webdriver():
return 'chrome' return 'chrome'