From 2b5ddc85c108dea7767af50f5637ea3856e8d7d0 Mon Sep 17 00:00:00 2001
From: Neda Moeini <neda.moeini@geant.org>
Date: Wed, 27 Nov 2024 16:55:41 +0100
Subject: [PATCH] Test for VRF create WF

---
 test/workflows/vrf/__init__.py        |  0
 test/workflows/vrf/test_create_vrf.py | 42 +++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 test/workflows/vrf/__init__.py
 create mode 100644 test/workflows/vrf/test_create_vrf.py

diff --git a/test/workflows/vrf/__init__.py b/test/workflows/vrf/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/workflows/vrf/test_create_vrf.py b/test/workflows/vrf/test_create_vrf.py
new file mode 100644
index 000000000..6ba190cb0
--- /dev/null
+++ b/test/workflows/vrf/test_create_vrf.py
@@ -0,0 +1,42 @@
+import pytest
+from orchestrator.types import SubscriptionLifecycle
+
+from gso.products import ProductName
+from gso.products.product_types.vrf import VRF
+from gso.services.subscriptions import get_product_id_by_name
+from test.workflows import assert_complete, extract_state, run_workflow
+
+
+@pytest.fixture()
+def vrf_input(faker):
+    product_id = get_product_id_by_name(ProductName.VRF)
+    return [
+        {"product": product_id},
+        {
+            "tt_number": faker.tt_number(),
+            "partner": "GEANT",
+            "vrf_name": faker.pystr(),
+            "route_distinguisher": faker.pystr(),
+            "route_target": faker.pystr(),
+            "vrf_as_number": faker.pyint(),
+        },
+        {},
+    ]
+
+
+@pytest.mark.workflow()
+def test_create_vrf_success(
+    vrf_input,
+    faker,
+    data_config_filename,
+):
+    result, _, _ = run_workflow("create_vrf", vrf_input)
+    assert_complete(result)
+    state = extract_state(result)
+    subscription = VRF.from_subscription(state["subscription_id"])
+    assert subscription.status == SubscriptionLifecycle.ACTIVE
+    assert subscription.vrf.vrf_name == vrf_input[1]["vrf_name"]
+    assert subscription.vrf.route_distinguisher == vrf_input[1]["route_distinguisher"]
+    assert subscription.vrf.route_target == vrf_input[1]["route_target"]
+    assert subscription.vrf.vrf_as_number == vrf_input[1]["vrf_as_number"]
+    assert subscription.description == f"VRF {vrf_input[1]["vrf_name"]}"
-- 
GitLab