From 9d3fd45c2c98c035554f141ae54e81f5ebb9274a Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Wed, 22 Nov 2023 16:51:07 +0000 Subject: [PATCH] =?UTF-8?q?test=EE=81=91(services):=20missing=20info=20on?= =?UTF-8?q?=20service=20enabled=20status=20returns=20False?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- selfprivacy_api/services/service.py | 7 ++++++- tests/test_graphql/test_services.py | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/selfprivacy_api/services/service.py b/selfprivacy_api/services/service.py index dc7579d..a53c028 100644 --- a/selfprivacy_api/services/service.py +++ b/selfprivacy_api/services/service.py @@ -128,7 +128,12 @@ class Service(ABC): @classmethod def is_enabled(cls) -> bool: - """`True` if the service is enabled.""" + """ + `True` if the service is enabled. + `False` if it is not enabled or not defined in file + If there is nothing in the file, this is equivalent to False + because NixOS won't enable it then. + """ name = cls.get_id() with ReadUserData() as user_data: return user_data.get(name, {}).get("enable", False) diff --git a/tests/test_graphql/test_services.py b/tests/test_graphql/test_services.py index 8a88ef7..f28f204 100644 --- a/tests/test_graphql/test_services.py +++ b/tests/test_graphql/test_services.py @@ -557,6 +557,25 @@ def possibly_dubiously_enabled_service( return dummy_service +# Yeah, idk yet how to dry it. +@pytest.fixture(params=["deleted_attribute", "service_not_in_json"]) +def undefined_enabledness_service(dummy_service: DummyService, request) -> DummyService: + if request.param == "deleted_attribute": + with WriteUserData() as data: + del data[dummy_service.get_id()]["enable"] + if request.param == "service_not_in_json": + with WriteUserData() as data: + del data[dummy_service.get_id()] + return dummy_service + + +def test_undefined_enabledness_in_json_means_False( + undefined_enabledness_service: DummyService, +): + dummy_service = undefined_enabledness_service + assert dummy_service.is_enabled() is False + + def test_enabling_disabling_writes_json( possibly_dubiously_enabled_service: DummyService, ):