Skip to content
Snippets Groups Projects
Verified Commit 3965d8a3 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

Use pytest marker for workflows

parent 6d89fe55
No related branches found
No related tags found
1 merge request!203Use pytest marker for workflows
Pipeline #86633 failed
This commit is part of merge request !203. Comments created here will be created in the context of that merge request.
import json import json
import time
from pathlib import Path from pathlib import Path
import pytest import pytest
...@@ -187,23 +186,21 @@ def office_router_data(temp_file, faker, site_subscription_factory): ...@@ -187,23 +186,21 @@ def office_router_data(temp_file, faker, site_subscription_factory):
########### ###########
@pytest.mark.workflow()
def test_import_iptrunk_success(iptrunk_data): def test_import_iptrunk_success(iptrunk_data):
assert len(get_active_iptrunk_subscriptions()) == 0 assert len(get_active_iptrunk_subscriptions()) == 0
import_iptrunks(iptrunk_data()["path"]) import_iptrunks(iptrunk_data()["path"])
time.sleep(1)
assert len(get_subscriptions([ProductType.IMPORTED_IP_TRUNK])) == 0 assert len(get_subscriptions([ProductType.IMPORTED_IP_TRUNK])) == 0
assert len(get_active_iptrunk_subscriptions()) == 1 assert len(get_active_iptrunk_subscriptions()) == 1
@pytest.mark.workflow()
def test_import_site_success(site_data): def test_import_site_success(site_data):
assert SubscriptionTable.query.all() == [] assert SubscriptionTable.query.all() == []
mock_site_data = site_data() mock_site_data = site_data()
import_sites(mock_site_data["path"]) import_sites(mock_site_data["path"])
time.sleep(1)
assert len(get_subscriptions([ProductType.IMPORTED_SITE])) == 0 assert len(get_subscriptions([ProductType.IMPORTED_SITE])) == 0
subscription = retrieve_subscription_by_subscription_instance_value( subscription = retrieve_subscription_by_subscription_instance_value(
resource_type="site_name", value=mock_site_data["data"]["site_name"] resource_type="site_name", value=mock_site_data["data"]["site_name"]
...@@ -211,13 +208,13 @@ def test_import_site_success(site_data): ...@@ -211,13 +208,13 @@ def test_import_site_success(site_data):
assert subscription is not None assert subscription is not None
@pytest.mark.workflow()
def test_import_site_twice(site_data, capfd): def test_import_site_twice(site_data, capfd):
path_location = site_data()["path"] path_location = site_data()["path"]
import_sites(path_location) import_sites(path_location)
# Second identical import should print ValidationError to stdout # Second identical import should print ValidationError to stdout
import_sites(path_location) import_sites(path_location)
time.sleep(1)
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
assert ( assert (
"""Validation error: 4 validation errors for SiteImportModel """Validation error: 4 validation errors for SiteImportModel
...@@ -234,6 +231,7 @@ site_name ...@@ -234,6 +231,7 @@ site_name
assert SubscriptionTable.query.count() == 1 assert SubscriptionTable.query.count() == 1
@pytest.mark.workflow()
def test_import_site_with_invalid_data(site_data, capfd): def test_import_site_with_invalid_data(site_data, capfd):
# invalid data, missing site_latitude and invalid site_longitude # invalid data, missing site_latitude and invalid site_longitude
incorrect_site_data = site_data(site_latitude=None, site_longitude="broken") incorrect_site_data = site_data(site_latitude=None, site_longitude="broken")
...@@ -241,7 +239,6 @@ def test_import_site_with_invalid_data(site_data, capfd): ...@@ -241,7 +239,6 @@ def test_import_site_with_invalid_data(site_data, capfd):
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
import_sites(incorrect_site_data["path"]) import_sites(incorrect_site_data["path"])
time.sleep(1)
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
assert ( assert (
"""Validation error: 2 validation errors for SiteImportModel """Validation error: 2 validation errors for SiteImportModel
...@@ -254,18 +251,20 @@ site_longitude ...@@ -254,18 +251,20 @@ site_longitude
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
@pytest.mark.workflow()
def test_import_router_success(site_subscription_factory, router_data): def test_import_router_success(site_subscription_factory, router_data):
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
import_routers(router_data()["path"]) import_routers(router_data()["path"])
time.sleep(1)
assert len(get_active_router_subscriptions()) == 1 assert len(get_active_router_subscriptions()) == 1
@pytest.mark.workflow()
def test_import_router_with_invalid_data(router_data, capfd): def test_import_router_with_invalid_data(router_data, capfd):
broken_data = router_data(hostname="", router_lo_ipv6_address="Not an IP address") broken_data = router_data(hostname="", router_lo_ipv6_address="Not an IP address")
import_routers(broken_data["path"]) import_routers(broken_data["path"])
# Only a Site has been added, no Router # Only a Site has been added, no Router
time.sleep(1)
assert SubscriptionTable.query.count() == 1 assert SubscriptionTable.query.count() == 1
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
# The extra space at the end of the next line is required, and not dangling by accident. # The extra space at the end of the next line is required, and not dangling by accident.
...@@ -277,18 +276,20 @@ def test_import_router_with_invalid_data(router_data, capfd): ...@@ -277,18 +276,20 @@ def test_import_router_with_invalid_data(router_data, capfd):
) )
@pytest.mark.workflow()
def test_import_iptrunk_successful(iptrunk_data): def test_import_iptrunk_successful(iptrunk_data):
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
import_iptrunks(iptrunk_data()["path"]) import_iptrunks(iptrunk_data()["path"])
time.sleep(1)
assert SubscriptionTable.query.count() == 5 assert SubscriptionTable.query.count() == 5
assert len(get_active_iptrunk_subscriptions()) == 1 assert len(get_active_iptrunk_subscriptions()) == 1
@pytest.mark.workflow()
def test_import_iptrunk_invalid_router_id_side_a_and_b(iptrunk_data, capfd): def test_import_iptrunk_invalid_router_id_side_a_and_b(iptrunk_data, capfd):
broken_data = iptrunk_data(side_a_node="Doesn't exist", side_b_node="Also doesn't exist") broken_data = iptrunk_data(side_a_node="Doesn't exist", side_b_node="Also doesn't exist")
import_iptrunks(broken_data["path"]) import_iptrunks(broken_data["path"])
time.sleep(1)
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
assert SubscriptionTable.query.count() == 4 assert SubscriptionTable.query.count() == 4
assert len(get_active_iptrunk_subscriptions()) == 0 assert len(get_active_iptrunk_subscriptions()) == 0
...@@ -302,6 +303,7 @@ side_b_node_id ...@@ -302,6 +303,7 @@ side_b_node_id
) )
@pytest.mark.workflow()
def test_import_iptrunk_non_unique_members_side_a_and_b(iptrunk_data, faker, capfd): def test_import_iptrunk_non_unique_members_side_a_and_b(iptrunk_data, faker, capfd):
duplicate_interface = {"interface_name": faker.network_interface(), "interface_description": faker.sentence()} duplicate_interface = {"interface_name": faker.network_interface(), "interface_description": faker.sentence()}
side_a_members = [duplicate_interface for _ in range(5)] side_a_members = [duplicate_interface for _ in range(5)]
...@@ -309,7 +311,6 @@ def test_import_iptrunk_non_unique_members_side_a_and_b(iptrunk_data, faker, cap ...@@ -309,7 +311,6 @@ def test_import_iptrunk_non_unique_members_side_a_and_b(iptrunk_data, faker, cap
broken_data = iptrunk_data(side_a_members=side_a_members, side_b_members=side_b_members) broken_data = iptrunk_data(side_a_members=side_a_members, side_b_members=side_b_members)
import_iptrunks(broken_data["path"]) import_iptrunks(broken_data["path"])
time.sleep(1)
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
assert SubscriptionTable.query.count() == 4 assert SubscriptionTable.query.count() == 4
assert len(get_active_iptrunk_subscriptions()) == 0 assert len(get_active_iptrunk_subscriptions()) == 0
...@@ -323,6 +324,7 @@ side_b_ae_members ...@@ -323,6 +324,7 @@ side_b_ae_members
) )
@pytest.mark.workflow()
def test_import_iptrunk_side_a_member_count_mismatch(iptrunk_data, faker, capfd): def test_import_iptrunk_side_a_member_count_mismatch(iptrunk_data, faker, capfd):
side_a_members = [ side_a_members = [
{"interface_name": faker.network_interface(), "interface_description": faker.sentence()} for _ in range(5) {"interface_name": faker.network_interface(), "interface_description": faker.sentence()} for _ in range(5)
...@@ -332,7 +334,6 @@ def test_import_iptrunk_side_a_member_count_mismatch(iptrunk_data, faker, capfd) ...@@ -332,7 +334,6 @@ def test_import_iptrunk_side_a_member_count_mismatch(iptrunk_data, faker, capfd)
] ]
broken_data = iptrunk_data(side_a_members=side_a_members, side_b_members=side_b_members) broken_data = iptrunk_data(side_a_members=side_a_members, side_b_members=side_b_members)
import_iptrunks(broken_data["path"]) import_iptrunks(broken_data["path"])
time.sleep(1)
out, _ = capfd.readouterr() out, _ = capfd.readouterr()
assert SubscriptionTable.query.count() == 4 assert SubscriptionTable.query.count() == 4
...@@ -345,19 +346,21 @@ __root__ ...@@ -345,19 +346,21 @@ __root__
) )
@pytest.mark.workflow()
def test_import_office_router_success(office_router_data): def test_import_office_router_success(office_router_data):
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
import_office_routers(office_router_data()["path"]) import_office_routers(office_router_data()["path"])
time.sleep(1)
assert SubscriptionTable.query.count() == 2 assert SubscriptionTable.query.count() == 2
assert len(get_subscriptions([ProductType.IMPORTED_OFFICE_ROUTER])) == 0 assert len(get_subscriptions([ProductType.IMPORTED_OFFICE_ROUTER])) == 0
assert len(get_subscriptions([ProductType.OFFICE_ROUTER])) == 1 assert len(get_subscriptions([ProductType.OFFICE_ROUTER])) == 1
@pytest.mark.workflow()
def test_import_super_pop_switch_success(super_pop_switch_data): def test_import_super_pop_switch_success(super_pop_switch_data):
assert SubscriptionTable.query.count() == 0 assert SubscriptionTable.query.count() == 0
import_super_pop_switches(super_pop_switch_data()["path"]) import_super_pop_switches(super_pop_switch_data()["path"])
time.sleep(1)
assert SubscriptionTable.query.count() == 2 assert SubscriptionTable.query.count() == 2
assert len(get_subscriptions([ProductType.IMPORTED_SUPER_POP_SWITCH])) == 0 assert len(get_subscriptions([ProductType.IMPORTED_SUPER_POP_SWITCH])) == 0
assert len(get_subscriptions([ProductType.SUPER_POP_SWITCH])) == 1 assert len(get_subscriptions([ProductType.SUPER_POP_SWITCH])) == 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment