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