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.schema" = "==6.0.1"
sentry-sdk = "*"
pytest-splinter = "*"
[dev-packages]
pycodestyle = "*"

60
Pipfile.lock generated
View File

@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "d8a6e0dad40718af879d0bb1a932892ab6aec5405bdc875bf9499d1ebcc1499b"
"sha256": "5829b746578681f0e8c44e47a0a07d896b2626923f2986ef51e6198dc069e508"
},
"pipfile-spec": 6,
"requires": {
@@ -32,6 +32,14 @@
"index": "pypi",
"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": {
"hashes": [
"sha256:05aa50940946f05759696156a8c39be118169a0e0f94a49d0bb106503891ff54",
@@ -306,6 +314,13 @@
"index": "pypi",
"version": "==3.4.0"
},
"iniconfig": {
"hashes": [
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
"sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"
],
"version": "==1.1.1"
},
"lxml": {
"hashes": [
"sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d",
@@ -391,6 +406,14 @@
"index": "pypi",
"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": {
"hashes": [
"sha256:3985b91ebf576883efe5fa501f42a16de2607684f3797ddba7202b71b7d0da51",
@@ -544,6 +567,14 @@
"index": "pypi",
"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": {
"hashes": [
"sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435",
@@ -575,6 +606,21 @@
"index": "pypi",
"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": {
"hashes": [
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
@@ -670,11 +716,10 @@
},
"sentry-sdk": {
"hashes": [
"sha256:0a711ec952441c2ec89b8f5d226c33bc697914f46e876b44a4edd3e7864cf4d0",
"sha256:737a094e49a529dd0fdcaafa9e97cf7c3d5eb964bd229821d640bc77f3502b3f"
"sha256:3693cb47ba8d90c004ac002425770b32aaf0c83a846ec48e2d1364e7db1d072d"
],
"index": "pypi",
"version": "==0.19.5"
"version": "==0.20.1"
},
"simplejson": {
"hashes": [
@@ -743,6 +788,13 @@
"index": "pypi",
"version": "==2.1"
},
"splinter": {
"hashes": [
"sha256:459e39e7a9f7572db6f1cdb5fdc5ccfc6404f021dccb969ee6287be2386a40db",
"sha256:7e5e69c5b76ada909283465cdc3636e2632f7e557932ce96ab9c0432b0b32f7f"
],
"version": "==0.14.0"
},
"sqlparse": {
"hashes": [
"sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0",

View File

@@ -651,6 +651,21 @@ class TestCalendar(BaseRigboardTest):
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
class TestHealthAndSafety(BaseRigboardTest):
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.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):
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
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
asset.delete()

View File

@@ -2,9 +2,12 @@ from django.conf import settings
import django
import pytest
from django.core.management import call_command
from RIGS.models import VatRate
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():
@@ -13,9 +16,34 @@ def pytest_configure():
)
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
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')
def splinter_webdriver():
return 'chrome'