From b880f6b933d1076681314c9c92ab66b033c919e5 Mon Sep 17 00:00:00 2001
From: Remco Tukker <remco.tukker@geant.org>
Date: Tue, 16 May 2023 13:44:54 +0200
Subject: [PATCH] add testcase for policy endpoint

---
 compendium_v2/routes/policy.py |  2 +-
 test/conftest.py               | 27 +++++++++++++++++++++++++++
 test/test_policies.py          | 13 +++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 test/test_policies.py

diff --git a/compendium_v2/routes/policy.py b/compendium_v2/routes/policy.py
index 72d3f371..83e46489 100644
--- a/compendium_v2/routes/policy.py
+++ b/compendium_v2/routes/policy.py
@@ -32,7 +32,7 @@ POLICY_RESPONSE_SCHEMA = {
     },
 
     'type': 'array',
-    'items': {'$ref': '#/definitions/funding'}
+    'items': {'$ref': '#/definitions/policy'}
 }
 
 
diff --git a/test/conftest.py b/test/conftest.py
index be9c16e4..4e0e7430 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -237,3 +237,30 @@ def test_ec_project_data(app):
             db.session.add(model.ECProject(nren=nren, year=year, project=project))
 
         db.session.commit()
+
+
+@pytest.fixture
+def test_policy_data(app):
+    with app.app_context():
+        nrens_and_years = [('nren1', 2019), ('nren1', 2020), ('nren1', 2021), ('nren2', 2019), ('nren2', 2021)]
+        nren_names = set(ny[0] for ny in nrens_and_years)
+
+        nren_dict = {nren_name: model.NREN(name=nren_name) for nren_name in nren_names}
+        db.session.add_all(nren_dict.values())
+
+        for (nren_name, year) in nrens_and_years:
+            nren = nren_dict[nren_name]
+
+            db.session.add(model.Policy(
+                nren=nren,
+                year=year,
+                strategic_plan='a strategy',
+                environmental='a policy',
+                equal_opportunity='another policy',
+                connectivity='',
+                acceptable_use='',
+                privacy_notice='',
+                data_protection=''
+            ))
+
+        db.session.commit()
diff --git a/test/test_policies.py b/test/test_policies.py
new file mode 100644
index 00000000..efa70185
--- /dev/null
+++ b/test/test_policies.py
@@ -0,0 +1,13 @@
+import json
+import jsonschema
+from compendium_v2.routes.policy import POLICY_RESPONSE_SCHEMA
+
+
+def test_ec_project_response(client, test_policy_data):
+    rv = client.get(
+        '/api/policy/',
+        headers={'Accept': ['application/json']})
+    assert rv.status_code == 200
+    result = json.loads(rv.data.decode('utf-8'))
+    jsonschema.validate(result, POLICY_RESPONSE_SCHEMA)
+    assert result
-- 
GitLab