From 76c9b5b29c45928cdc274a2ba9c91119459f5290 Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Thu, 11 Jan 2024 11:26:11 +0100
Subject: [PATCH] add unit test for product validation workflow

---
 gso/workflows/router/validate_router.py         |  2 +-
 test/workflows/tasks/__init__.py                |  0
 .../tasks/test_task_validate_products.py        | 17 +++++++++++++++++
 tox.ini                                         |  1 +
 4 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100644 test/workflows/tasks/__init__.py
 create mode 100644 test/workflows/tasks/test_task_validate_products.py

diff --git a/gso/workflows/router/validate_router.py b/gso/workflows/router/validate_router.py
index 6a1390d2..e89cabc9 100644
--- a/gso/workflows/router/validate_router.py
+++ b/gso/workflows/router/validate_router.py
@@ -7,8 +7,8 @@ from orchestrator.utils.json import json_dumps
 from orchestrator.workflow import StepList, done, init, step, workflow
 from orchestrator.workflows.steps import resync, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
-from products import Router
 
+from gso.products.product_types.router import Router
 from gso.services.provisioning_proxy import execute_playbook, pp_interaction
 from gso.workflows.router.create_router import verify_ipam_loopback
 
diff --git a/test/workflows/tasks/__init__.py b/test/workflows/tasks/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/workflows/tasks/test_task_validate_products.py b/test/workflows/tasks/test_task_validate_products.py
new file mode 100644
index 00000000..e49cf9ae
--- /dev/null
+++ b/test/workflows/tasks/test_task_validate_products.py
@@ -0,0 +1,17 @@
+import pytest
+
+from test.workflows import assert_complete, extract_state, run_workflow
+
+
+@pytest.mark.workflow()
+def test_task_validate_products(responses, faker):
+    result, _, _ = run_workflow("task_validate_products", [{}])
+    assert_complete(result)
+    state = extract_state(result)
+
+    assert state["check_all_workflows_are_in_db"]
+    assert state["check_workflows_for_matching_targets_and_descriptions"]
+    assert state["check_that_products_have_at_least_one_workflow"]
+    assert state["check_db_fixed_input_config"]
+    assert state["check_that_products_have_create_modify_and_terminate_workflows"]
+    assert state["check_subscription_models"]
diff --git a/tox.ini b/tox.ini
index a2f334fc..c773a943 100644
--- a/tox.ini
+++ b/tox.ini
@@ -9,6 +9,7 @@ filterwarnings = "ignore,default:::gso"
 passenv = DATABASE_URI_TEST,SKIP_ALL_TESTS,ENVIRONMENT_IGNORE_MUTATION_DISABLED
 setenv =
     OAUTH2_ACTIVE = False
+    TRANSLATIONS_DIR = ./gso/translations
 deps =
     coverage
     -r requirements.txt
-- 
GitLab