From 74019763fd1d79d3ad579f8f31ef0a24b74c03b0 Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Fri, 10 May 2024 13:13:49 +0200
Subject: [PATCH] Move unit test workflow inputs to pytest fixtures

---
 .../iptrunk/test_create_imported_iptrunk.py   | 12 ++++---
 .../test_create_imported_office_router.py     | 11 +++---
 .../site/test_create_imported_site.py         | 36 ++++++++++---------
 .../test_create_imported_super_pop_switch.py  | 11 +++---
 4 files changed, 41 insertions(+), 29 deletions(-)

diff --git a/test/workflows/iptrunk/test_create_imported_iptrunk.py b/test/workflows/iptrunk/test_create_imported_iptrunk.py
index 450ae8b6..c08ddbe6 100644
--- a/test/workflows/iptrunk/test_create_imported_iptrunk.py
+++ b/test/workflows/iptrunk/test_create_imported_iptrunk.py
@@ -11,9 +11,9 @@ from test.workflows import (
 )
 
 
-@pytest.mark.workflow()
-def test_create_imported_iptrunk_success(faker, nokia_router_subscription_factory):
-    input_data = {
+@pytest.fixture()
+def workflow_input_data(faker, nokia_router_subscription_factory):
+    return {
         "partner": "GEANT",
         "geant_s_sid": faker.geant_sid(),
         "iptrunk_description": faker.sentence(),
@@ -36,7 +36,11 @@ def test_create_imported_iptrunk_success(faker, nokia_router_subscription_factor
         "iptrunk_ipv4_network": faker.ipv4_network(max_subnet=31),
         "iptrunk_ipv6_network": faker.ipv6_network(max_subnet=126),
     }
-    result, _, _ = run_workflow("create_imported_iptrunk", [input_data])
+
+
+@pytest.mark.workflow()
+def test_create_imported_iptrunk_success(workflow_input_data):
+    result, _, _ = run_workflow("create_imported_iptrunk", [workflow_input_data])
     state = extract_state(result)
     imported_router = ImportedIptrunk.from_subscription(state["subscription_id"])
 
diff --git a/test/workflows/office_router/test_create_imported_office_router.py b/test/workflows/office_router/test_create_imported_office_router.py
index 6e711ba8..ac132d36 100644
--- a/test/workflows/office_router/test_create_imported_office_router.py
+++ b/test/workflows/office_router/test_create_imported_office_router.py
@@ -11,9 +11,9 @@ from test.workflows import (
 )
 
 
-@pytest.mark.workflow()
-def test_create_imported_office_router_success(faker, site_subscription_factory):
-    input_data = {
+@pytest.fixture()
+def workflow_input_data(faker, site_subscription_factory):
+    return {
         "partner": "GEANT",
         "office_router_site": Site.from_subscription(site_subscription_factory()).site.site_name,
         "office_router_fqdn": faker.domain_name(levels=4),
@@ -22,7 +22,10 @@ def test_create_imported_office_router_success(faker, site_subscription_factory)
         "office_router_lo_ipv6_address": faker.ipv6(),
     }
 
-    result, _, _ = run_workflow("create_imported_office_router", [input_data])
+
+@pytest.mark.workflow()
+def test_create_imported_office_router_success(workflow_input_data):
+    result, _, _ = run_workflow("create_imported_office_router", [workflow_input_data])
     state = extract_state(result)
     imported_office_router = ImportedOfficeRouter.from_subscription(state["subscription_id"])
 
diff --git a/test/workflows/site/test_create_imported_site.py b/test/workflows/site/test_create_imported_site.py
index 62c1a594..4e8b8e35 100644
--- a/test/workflows/site/test_create_imported_site.py
+++ b/test/workflows/site/test_create_imported_site.py
@@ -6,24 +6,26 @@ from gso.products.product_types.site import ImportedSite
 from test.workflows import assert_complete, extract_state, run_workflow
 
 
+@pytest.fixture()
+def workflow_input_data(faker):
+    return {
+        "site_name": faker.site_name(),
+        "site_city": faker.city(),
+        "site_country": faker.country(),
+        "site_country_code": faker.country_code(),
+        "site_latitude": "-74.0060",
+        "site_longitude": "40.7128",
+        "site_bgp_community_id": faker.pyint(),
+        "site_internal_id": faker.pyint(),
+        "site_tier": SiteTier.TIER1,
+        "site_ts_address": faker.ipv4(),
+        "partner": "GEANT",
+    }
+
+
 @pytest.mark.workflow()
-def test_create_imported_site_success(faker):
-    initial_created_site_data = [
-        {
-            "site_name": faker.site_name(),
-            "site_city": faker.city(),
-            "site_country": faker.country(),
-            "site_country_code": faker.country_code(),
-            "site_latitude": "-74.0060",
-            "site_longitude": "40.7128",
-            "site_bgp_community_id": faker.pyint(),
-            "site_internal_id": faker.pyint(),
-            "site_tier": SiteTier.TIER1,
-            "site_ts_address": faker.ipv4(),
-            "partner": "GEANT",
-        }
-    ]
-    result, _, _ = run_workflow("create_imported_site", initial_created_site_data)
+def test_create_imported_site_success(workflow_input_data):
+    result, _, _ = run_workflow("create_imported_site", [workflow_input_data])
 
     assert_complete(result)
     state = extract_state(result)
diff --git a/test/workflows/super_pop_switch/test_create_imported_super_pop_switch.py b/test/workflows/super_pop_switch/test_create_imported_super_pop_switch.py
index c1e283a6..5d0dcd17 100644
--- a/test/workflows/super_pop_switch/test_create_imported_super_pop_switch.py
+++ b/test/workflows/super_pop_switch/test_create_imported_super_pop_switch.py
@@ -11,9 +11,9 @@ from test.workflows import (
 )
 
 
-@pytest.mark.workflow()
-def test_create_imported_office_router_success(faker, site_subscription_factory):
-    input_data = {
+@pytest.fixture()
+def workflow_input_data(faker, site_subscription_factory):
+    return {
         "partner": "GEANT",
         "hostname": faker.domain_word(),
         "super_pop_switch_site": Site.from_subscription(site_subscription_factory()).site.site_name,
@@ -21,7 +21,10 @@ def test_create_imported_office_router_success(faker, site_subscription_factory)
         "super_pop_switch_mgmt_ipv4_address": faker.ipv4(),
     }
 
-    result, _, _ = run_workflow("create_imported_super_pop_switch", [input_data])
+
+@pytest.mark.workflow()
+def test_create_imported_office_router_success(workflow_input_data):
+    result, _, _ = run_workflow("create_imported_super_pop_switch", [workflow_input_data])
     state = extract_state(result)
     imported_super_pop_switch = ImportedSuperPopSwitch.from_subscription(state["subscription_id"])
 
-- 
GitLab