From ca246ec80e6d82c0f22d363cf05d2739ccd5f496 Mon Sep 17 00:00:00 2001 From: Arona Jones Date: Sun, 31 Jan 2021 02:07:05 +0000 Subject: [PATCH] Port title test to project level --- PyRIGS/tests/test_unit.py | 42 +++++++++----- .../commands/generateSampleRIGSData.py | 55 +++++++++---------- assets/tests/test_unit.py | 13 ----- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/PyRIGS/tests/test_unit.py b/PyRIGS/tests/test_unit.py index 7e39c240..aa4ebe0d 100644 --- a/PyRIGS/tests/test_unit.py +++ b/PyRIGS/tests/test_unit.py @@ -3,7 +3,7 @@ from assets.tests.test_unit import create_asset_one import pytest from django.urls import URLPattern, URLResolver, reverse from django.urls.exceptions import NoReverseMatch -from pytest_django.asserts import assertContains, assertRedirects, assertTemplateUsed +from pytest_django.asserts import assertContains, assertRedirects, assertTemplateUsed, assertInHTML pytestmark = pytest.mark.django_db @@ -20,24 +20,28 @@ def find_urls_recursive(patterns): return urls_to_check +def get_request_url(url): + pattern = str(url.pattern) + request_url = "" + try: + kwargz = {} + if ":pk>" in pattern: + kwargz['pk'] = 1 + if ":model>" in pattern: + kwargz['model'] = "event" + return reverse(url.name, kwargs=kwargz) + except NoReverseMatch: + print("Couldn't test url " + pattern) + + def test_unauthenticated(client): # Nothing should be available to the unauthenticated create_asset_one() for url in find_urls_recursive(urls.urlpatterns): - pattern = str(url.pattern) - request_url = "" - try: - kwargz = {} - if ":pk>" in pattern: - kwargz['pk'] = 1 - if ":model>" in pattern: - kwargz['model'] = "event" - request_url = reverse(url.name, kwargs=kwargz) - except NoReverseMatch: - print("Couldn't test url " + pattern) - if request_url and 'user' not in request_url: # User module is full of edge cases + request_url = get_request_url(url) + if request_url and 'user' not in request_url: # User module is full of edge cases response = client.get(request_url, follow=True, HTTP_HOST='example.com') assertContains(response, 'Login') - if 'application/json+oembed' in str(response.content): + if 'application/json+oembed' in response.content.decode(): assertTemplateUsed(response, 'login_redirect.html') else: if "embed" in str(url): @@ -45,3 +49,13 @@ def test_unauthenticated(client): # Nothing should be available to the unauthen else: expected_url = "{0}?next={1}".format(reverse('login'), request_url) assertRedirects(response, expected_url) + + +def test_page_titles(admin_client): + create_asset_one() + for url in filter((lambda u: "embed" not in u.name), find_urls_recursive(urls.urlpatterns)): + request_url = get_request_url(url) + response = admin_client.get(request_url) + if hasattr(response, "context_data") and "page_title" in response.context_data: + expected_title = response.context_data["page_title"] + assertInHTML('{} | Rig Information Gathering System'.format(expected_title), response.content.decode()) diff --git a/RIGS/management/commands/generateSampleRIGSData.py b/RIGS/management/commands/generateSampleRIGSData.py index 65aa827a..d2d62c44 100644 --- a/RIGS/management/commands/generateSampleRIGSData.py +++ b/RIGS/management/commands/generateSampleRIGSData.py @@ -10,7 +10,6 @@ from reversion import revisions as reversion from RIGS import models - class Command(BaseCommand): help = 'Adds sample data to use for testing' can_import_settings = True @@ -345,30 +344,30 @@ class Command(BaseCommand): elif random.randint(0, 2) > 1: # 1 in 3 have been paid models.Payment.objects.create(invoice=newInvoice, amount=newInvoice.balance, date=datetime.date.today()) - if i == 1 or random.randint(0, 5) > 0: # Event 1 and 1 in 5 have a RA - models.RiskAssessment.objects.create(event=newEvent, supervisor_consulted=bool(random.getrandbits(1)), nonstandard_equipment=bool(random.getrandbits(1)), - nonstandard_use=bool(random.getrandbits(1)), - contractors=bool(random.getrandbits(1)), - other_companies=bool(random.getrandbits(1)), - crew_fatigue=bool(random.getrandbits(1)), - big_power=bool(random.getrandbits(1)), - generators=bool(random.getrandbits(1)), - other_companies_power=bool(random.getrandbits(1)), - nonstandard_equipment_power=bool(random.getrandbits(1)), - multiple_electrical_environments=bool(random.getrandbits(1)), - noise_monitoring=bool(random.getrandbits(1)), - known_venue=bool(random.getrandbits(1)), - safe_loading=bool(random.getrandbits(1)), - safe_storage=bool(random.getrandbits(1)), - area_outside_of_control=bool(random.getrandbits(1)), - barrier_required=bool(random.getrandbits(1)), - nonstandard_emergency_procedure=bool(random.getrandbits(1)), - special_structures=bool(random.getrandbits(1)), - suspended_structures=bool(random.getrandbits(1)), - outside=bool(random.getrandbits(1))) - if i == 0 or random.randint(0, 1) > 0: # Event 1 and 1 in 10 have a Checklist - models.EventChecklist.objects.create(event=newEvent, power_mic=random.choice(self.profiles), safe_parking=bool(random.getrandbits(1)), - safe_packing=bool(random.getrandbits(1)), exits=bool(random.getrandbits(1)), trip_hazard=bool(random.getrandbits(1)), warning_signs=bool(random.getrandbits(1)), - ear_plugs=bool(random.getrandbits(1)), hs_location="Locked away safely", - extinguishers_location="Somewhere, I forgot", earthing=bool(random.getrandbits(1)), pat=bool(random.getrandbits(1)), - date=timezone.now(), venue=random.choice(self.venues)) + if i == 1 or random.randint(0, 5) > 0: # Event 1 and 1 in 5 have a RA + models.RiskAssessment.objects.create(event=newEvent, supervisor_consulted=bool(random.getrandbits(1)), nonstandard_equipment=bool(random.getrandbits(1)), + nonstandard_use=bool(random.getrandbits(1)), + contractors=bool(random.getrandbits(1)), + other_companies=bool(random.getrandbits(1)), + crew_fatigue=bool(random.getrandbits(1)), + big_power=bool(random.getrandbits(1)), + generators=bool(random.getrandbits(1)), + other_companies_power=bool(random.getrandbits(1)), + nonstandard_equipment_power=bool(random.getrandbits(1)), + multiple_electrical_environments=bool(random.getrandbits(1)), + noise_monitoring=bool(random.getrandbits(1)), + known_venue=bool(random.getrandbits(1)), + safe_loading=bool(random.getrandbits(1)), + safe_storage=bool(random.getrandbits(1)), + area_outside_of_control=bool(random.getrandbits(1)), + barrier_required=bool(random.getrandbits(1)), + nonstandard_emergency_procedure=bool(random.getrandbits(1)), + special_structures=bool(random.getrandbits(1)), + suspended_structures=bool(random.getrandbits(1)), + outside=bool(random.getrandbits(1))) + if i == 0 or random.randint(0, 1) > 0: # Event 1 and 1 in 10 have a Checklist + models.EventChecklist.objects.create(event=newEvent, power_mic=random.choice(self.profiles), safe_parking=bool(random.getrandbits(1)), + safe_packing=bool(random.getrandbits(1)), exits=bool(random.getrandbits(1)), trip_hazard=bool(random.getrandbits(1)), warning_signs=bool(random.getrandbits(1)), + ear_plugs=bool(random.getrandbits(1)), hs_location="Locked away safely", + extinguishers_location="Somewhere, I forgot", earthing=bool(random.getrandbits(1)), pat=bool(random.getrandbits(1)), + date=timezone.now(), venue=random.choice(self.venues)) diff --git a/assets/tests/test_unit.py b/assets/tests/test_unit.py index 25508a33..587c7094 100644 --- a/assets/tests/test_unit.py +++ b/assets/tests/test_unit.py @@ -258,16 +258,3 @@ def test_keyholder_access(client): response = client.get(url) assertContains(response, 'Purchase Details') assertContains(response, 'View Revision History') - - -def test_page_titles(admin_client): - for url in filter(lambda url: url.name is not None and not any(s in url.name for s in ["json", "embed"]), urls.urlpatterns): - request_url = "" - if ":pk>" in str(url.pattern): - request_url = reverse(url.name, kwargs={'pk': "1"}) - else: - request_url = reverse(url.name) - response = admin_client.get(request_url) - if hasattr(response, "context_data") and "page_title" in response.context_data: - expected_title = response.context_data["page_title"] - assertContains(response, '<title>{} | Rig Information Gathering System'.format(expected_title))