From 0cf66fbb8257837a8ef087b61bf3dec94e30bb8e Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Tue, 19 Apr 2022 01:08:28 +0200 Subject: [PATCH] :test_tube: Test resolve_failfast --- cfig/tests/test_all.py | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/cfig/tests/test_all.py b/cfig/tests/test_all.py index dd44d54..3887881 100644 --- a/cfig/tests/test_all.py +++ b/cfig/tests/test_all.py @@ -64,6 +64,16 @@ class TestConfig: numbers_config.proxies.resolve() assert isinstance(ei.value.errors["FIRST_NUMBER"], cfig.MissingValueError) + def test_resolve_ff_missing(self, numbers_config, monkeypatch): + monkeypatch.setenv("FIRST_NUMBER", "") + monkeypatch.setenv("SECOND_NUMBER", "") + + assert not os.environ.get("FIRST_NUMBER") + assert not os.environ.get("SECOND_NUMBER") + + with pytest.raises(cfig.MissingValueError): + numbers_config.proxies.resolve_failfast() + def test_resolve_required(self, numbers_config, monkeypatch): monkeypatch.setenv("FIRST_NUMBER", "1") monkeypatch.setenv("SECOND_NUMBER", "") @@ -86,6 +96,28 @@ class TestConfig: assert second_number == None assert second_number is not None + def test_resolve_ff_required(self, numbers_config, monkeypatch): + monkeypatch.setenv("FIRST_NUMBER", "1") + monkeypatch.setenv("SECOND_NUMBER", "") + + assert os.environ.get("FIRST_NUMBER") == "1" + assert not os.environ.get("SECOND_NUMBER") + + first_number = numbers_config.proxies["FIRST_NUMBER"] + second_number = numbers_config.proxies["SECOND_NUMBER"] + + assert not first_number.__resolved__ + assert not second_number.__resolved__ + + numbers_config.proxies.resolve_failfast() + + assert first_number.__resolved__ + assert first_number == 1 + + assert second_number.__resolved__ + assert second_number == None + assert second_number is not None + def test_resolve_optional(self, numbers_config, monkeypatch): monkeypatch.setenv("FIRST_NUMBER", "1") monkeypatch.setenv("SECOND_NUMBER", "2") @@ -107,6 +139,27 @@ class TestConfig: assert second_number.__resolved__ assert second_number == 2 + def test_resolve_ff_optional(self, numbers_config, monkeypatch): + monkeypatch.setenv("FIRST_NUMBER", "1") + monkeypatch.setenv("SECOND_NUMBER", "2") + + assert os.environ.get("FIRST_NUMBER") == "1" + assert os.environ.get("SECOND_NUMBER") == "2" + + first_number = numbers_config.proxies["FIRST_NUMBER"] + second_number = numbers_config.proxies["SECOND_NUMBER"] + + assert not first_number.__resolved__ + assert not second_number.__resolved__ + + numbers_config.proxies.resolve_failfast() + + assert first_number.__resolved__ + assert first_number == 1 + + assert second_number.__resolved__ + assert second_number == 2 + def test_resolve_unresolve(self, numbers_config, monkeypatch): monkeypatch.setenv("FIRST_NUMBER", "1") monkeypatch.setenv("SECOND_NUMBER", "2")