"""Tests wether the skeleton merge works.""" import pytest from config_skeleton import InvalidKeyError, MissingKeyError, merge_with_skeleton def test_single_invalid_key(): """Tests wether an InvalidKeyError is correctly thrown for a single key.""" data = {"test": 1, "test2": "test"} skel = { "test": None, } with pytest.raises(InvalidKeyError) as e_info: merge_with_skeleton(data, skel) assert e_info.value.message == "Invalid key(s): test2" def test_multiple_invalid_keys(): """Tests wether an InvalidKeyError is thrown for multiple keys.""" data = { "test": 1, "test2": "test", "test3": "test", } skel = { "test": None, } with pytest.raises(InvalidKeyError) as e_info: merge_with_skeleton(data, skel) assert e_info.value.message == "Invalid key(s): test2, test3" def test_single_missing_key(): """Tests wether a MissingKeyError is correctly thrown for a single key.""" data = { "test": 1, } skel = { "test": None, "test2": None, } with pytest.raises(MissingKeyError) as e_info: merge_with_skeleton(data, skel) assert e_info.value.message == "Missing key(s): test2" def test_multiple_missing_keys(): """Tests wether a MissingKeyError is correctly thrown for multiple keys.""" data = { "test": 1, } skel = { "test": None, "test2": None, "test3": None, } with pytest.raises(MissingKeyError) as e_info: merge_with_skeleton(data, skel) assert e_info.value.message == "Missing key(s): test2, test3"