mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-02-19 12:59:43 +00:00
Potentially fix tests, init splinter
This commit is contained in:
1
Pipfile
1
Pipfile
@@ -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
60
Pipfile.lock
generated
@@ -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",
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
30
conftest.py
30
conftest.py
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user