Skip to content

Commit

Permalink
parametrize tests
Browse files Browse the repository at this point in the history
  • Loading branch information
afuetterer committed Oct 5, 2023
1 parent 9eb985d commit 22557e9
Showing 1 changed file with 24 additions and 98 deletions.
122 changes: 24 additions & 98 deletions rdmo/management/tests/test_frontend.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
def e2e_tests_django_db_setup(django_db_setup, django_db_blocker, fixtures):
"""Set up database and populate with fixtures, that get restored for every test case."""
with django_db_blocker.unblock():
call_command('loaddata', *fixtures)
call_command("loaddata", *fixtures)
set_group_permissions()


Expand Down Expand Up @@ -72,106 +72,32 @@ def test_management_navigation(logged_in_admin_user: Page) -> None:
page.get_by_role("link", name="Views").click()


def test_management_has_catalogs(logged_in_admin_user: Page) -> None:
"""Test all catalogs in database are visible in management UI."""
url_model_mapping = (
("catalogs", Catalog),
("sections", Section),
("pages", PageModel),
("questionsets", QuestionSet),
("questions", Question),
("attributes", Attribute),
("optionsets", OptionSet),
("options", Option),
("conditions", Condition),
("tasks", Task),
("views", View),
)


@pytest.mark.parametrize("url,model", url_model_mapping)
def test_management_has_items(logged_in_admin_user: Page, url, model) -> None:
"""Test all items in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/catalogs")
catalogs = page.locator(".list-group > .list-group-item")
num_catalogs = Catalog.objects.count()
expect(catalogs).to_have_count(num_catalogs)


def test_management_has_sections(logged_in_admin_user: Page) -> None:
"""Test all sections in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/sections")
sections = page.locator(".list-group > .list-group-item")
num_sections = Section.objects.count()
expect(sections).to_have_count(num_sections)


def test_management_has_pages(logged_in_admin_user: Page) -> None:
"""Test all pages in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/pages")
pages = page.locator(".list-group > .list-group-item")
num_pages = PageModel.objects.count()
expect(pages).to_have_count(num_pages)


def test_management_has_questionsets(logged_in_admin_user: Page) -> None:
"""Test all question sets in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/questionsets")
questionsets = page.locator(".list-group > .list-group-item")
num_questionsets = QuestionSet.objects.count()
expect(questionsets).to_have_count(num_questionsets)


def test_management_has_questions(logged_in_admin_user: Page) -> None:
"""Test all questions in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/questions")
questions = page.locator(".list-group > .list-group-item")
num_questions = Question.objects.count()
expect(questions).to_have_count(num_questions)


def test_management_has_attributes(logged_in_admin_user: Page) -> None:
"""Test all attributes in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/attributes")
attributes = page.locator(".list-group > .list-group-item")
num_attributes = Attribute.objects.count()
expect(attributes).to_have_count(num_attributes)


def test_management_has_optionsets(logged_in_admin_user: Page) -> None:
"""Test all option sets in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/optionsets")
optionsets = page.locator(".list-group > .list-group-item")
num_optionsets = OptionSet.objects.count()
expect(optionsets).to_have_count(num_optionsets)


def test_management_has_options(logged_in_admin_user: Page) -> None:
"""Test all options in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/options")
options = page.locator(".list-group > .list-group-item")
num_options = Option.objects.count()
expect(options).to_have_count(num_options)


def test_management_has_conditions(logged_in_admin_user: Page) -> None:
"""Test all conditions in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/conditions")
conditions = page.locator(".list-group > .list-group-item")
num_conditions = Condition.objects.count()
expect(conditions).to_have_count(num_conditions)


def test_management_has_tasks(logged_in_admin_user: Page) -> None:
"""Test all tasks in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/tasks")
tasks = page.locator(".list-group > .list-group-item")
num_tasks = Task.objects.count()
expect(tasks).to_have_count(num_tasks)


def test_management_has_views(logged_in_admin_user: Page) -> None:
"""Test all views in database are visible in management UI."""
page = logged_in_admin_user
page.goto("/management/views")
views = page.locator(".list-group > .list-group-item")
num_views = View.objects.count()
expect(views).to_have_count(num_views)
num_items_in_database = model.objects.count()
page.goto(f"/management/{url}")
items_in_ui = page.locator(".list-group > .list-group-item")
expect(items_in_ui).to_have_count(num_items_in_database)


def test_management_catalog_nested_view(logged_in_admin_user: Page) -> None:

page = logged_in_admin_user
page.goto("/management/catalogs")
# page.get_by_role("link", title="View catalog nested").first.click()

0 comments on commit 22557e9

Please sign in to comment.