From 58d7c2d29b00323585fb7cf48da6c594d34f3032 Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Wed, 27 Dec 2023 14:50:06 +0100
Subject: [PATCH] add unit test for TWAMP deployment workflow

---
 test/workflows/iptrunk/test_deploy_twamp.py | 38 +++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 test/workflows/iptrunk/test_deploy_twamp.py

diff --git a/test/workflows/iptrunk/test_deploy_twamp.py b/test/workflows/iptrunk/test_deploy_twamp.py
new file mode 100644
index 00000000..4644af98
--- /dev/null
+++ b/test/workflows/iptrunk/test_deploy_twamp.py
@@ -0,0 +1,38 @@
+from unittest.mock import patch
+
+import pytest
+
+from gso.products import Iptrunk
+from test.workflows import (
+    assert_complete,
+    assert_pp_interaction_success,
+    extract_state,
+    run_workflow,
+)
+
+
+@pytest.mark.workflow()
+@patch("gso.workflows.iptrunk.deploy_twamp.execute_playbook")
+def test_iptrunk_deploy_twamp_success(
+    mock_execute_playbook,
+    iptrunk_subscription_factory,
+    faker,
+):
+    #  Set up mock return values
+    product_id = iptrunk_subscription_factory()
+
+    #  Run workflow
+    initial_input_data = [{"subscription_id": product_id}, {}]
+    result, process_stat, step_log = run_workflow("deploy_twamp", initial_input_data)
+
+    for _ in range(2):
+        result, step_log = assert_pp_interaction_success(result, process_stat, step_log)
+
+    assert_complete(result)
+
+    state = extract_state(result)
+    subscription_id = state["subscription_id"]
+    subscription = Iptrunk.from_subscription(subscription_id)
+
+    assert subscription.status == "active"
+    assert mock_execute_playbook.call_count == 2
-- 
GitLab