From 89aa093a41f57633f4f367862b48d45789755c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Fri, 17 Jan 2025 18:44:09 +0100 Subject: [PATCH] tests(agent): racksdb routes when disabled/enabled --- slurmweb/tests/lib/agent.py | 6 ++- slurmweb/tests/views/test_agent_racksdb.py | 55 ++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 slurmweb/tests/views/test_agent_racksdb.py diff --git a/slurmweb/tests/lib/agent.py b/slurmweb/tests/lib/agent.py index 54f85301..aae05e6c 100644 --- a/slurmweb/tests/lib/agent.py +++ b/slurmweb/tests/lib/agent.py @@ -11,7 +11,7 @@ import werkzeug -from flask import Blueprint +from flask import Blueprint, jsonify from rfl.authentication.user import AuthenticatedUser from slurmweb.apps import SlurmwebConfSeed @@ -42,6 +42,10 @@ class FakeRacksDBWebBlueprint(Blueprint): def __init__(self, **kwargs): super().__init__("Fake RacksDB web blueprint", __name__) + self.add_url_rule("fake", view_func=self.basic) + + def basic(self): + return jsonify({"test": "ok"}) class TestAgentBase(unittest.TestCase): diff --git a/slurmweb/tests/views/test_agent_racksdb.py b/slurmweb/tests/views/test_agent_racksdb.py new file mode 100644 index 00000000..74b1e2f0 --- /dev/null +++ b/slurmweb/tests/views/test_agent_racksdb.py @@ -0,0 +1,55 @@ +# Copyright (c) 2025 Rackslab +# +# This file is part of Slurm-web. +# +# SPDX-License-Identifier: GPL-3.0-or-later + + +import textwrap + +from ..lib.agent import TestAgentBase + + +class TestAgentRacksDBEnabledRequest(TestAgentBase): + + def setUp(self): + self.setup_client() + + def test_request_racksdb(self): + # Check FakeRacksDBWebBlueprint is called when racksdb is enabled (by default). + response = self.client.get("/racksdb/fake") + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.json, + {"test": "ok"}, + ) + + +class TestAgentRacksDBDisabledRequest(TestAgentBase): + + def setUp(self): + self.setup_client( + additional_conf=textwrap.dedent( + """ + + [racksdb] + enabled=no + """ + ) + ) + + def test_request_racksdb(self): + # Check FakeRacksDBWebBlueprint is not registered when racksdb is disabled. + response = self.client.get("/racksdb/fake") + self.assertEqual(response.status_code, 404) + self.assertEqual( + response.json, + { + "code": 404, + "description": ( + "The requested URL was not found on the server. If you entered " + "the URL manually please check your spelling and try again." + ), + "name": "Not Found", + }, + )