Port title test to project level

This commit is contained in:
2021-01-31 02:07:05 +00:00
parent c0af121f98
commit ca246ec80e
3 changed files with 55 additions and 55 deletions

View File

@@ -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,9 +20,7 @@ def find_urls_recursive(patterns):
return urls_to_check
def test_unauthenticated(client): # Nothing should be available to the unauthenticated
create_asset_one()
for url in find_urls_recursive(urls.urlpatterns):
def get_request_url(url):
pattern = str(url.pattern)
request_url = ""
try:
@@ -31,13 +29,19 @@ def test_unauthenticated(client): # Nothing should be available to the unauthen
kwargz['pk'] = 1
if ":model>" in pattern:
kwargz['model'] = "event"
request_url = reverse(url.name, kwargs=kwargz)
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):
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('<title>{} | Rig Information Gathering System'.format(expected_title), response.content.decode())

View File

@@ -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

View File

@@ -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</title>'.format(expected_title))