Merge branch 'gpg-state-fix' into gpg-keyring

This commit is contained in:
jeanluc 2022-12-11 16:43:25 +01:00 committed by Daniel Wozniak
parent af6f8ee292
commit dffe37973d
3 changed files with 19 additions and 80 deletions

View file

@ -153,6 +153,7 @@ def present(
if trust:
if trust in TRUST_MAP:
try:
# update trust level
result = __salt__["gpg.trust_key"](
keyid=key,
trust_level=trust,

View file

@ -181,6 +181,13 @@ def test_gpg_present_keyring_trust_change(
assert key_info[0]["trust"] == "u"
def test_gpg_absent_no_changes(gpghome, gpg, gnupg, key_a_fp):
assert not gnupg.list_keys(keys=key_a_fp)
ret = gpg.absent(key_a_fp[-16:], gnupghome=str(gpghome))
assert ret.result
assert not ret.changes
@pytest.mark.usefixtures("_pubkeys_present")
def test_gpg_absent(gpghome, gpg, gnupg, key_a_fp):
assert gnupg.list_keys(keys=key_a_fp)
@ -192,24 +199,6 @@ def test_gpg_absent(gpghome, gpg, gnupg, key_a_fp):
assert ret.changes["deleted"]
def test_gpg_absent_no_changes(gpghome, gpg, gnupg, key_a_fp):
assert not gnupg.list_keys(keys=key_a_fp)
ret = gpg.absent(key_a_fp[-16:], gnupghome=str(gpghome))
assert ret.result
assert not ret.changes
@pytest.mark.usefixtures("_pubkeys_present")
def test_gpg_absent_test_mode_no_changes(gpghome, gpg, gnupg, key_a_fp):
assert gnupg.list_keys(keys=key_a_fp)
ret = gpg.absent(key_a_fp[-16:], gnupghome=str(gpghome), test=True)
assert ret.result is None
assert ret.changes
assert "deleted" in ret.changes
assert ret.changes["deleted"]
assert gnupg.list_keys(keys=key_a_fp)
@pytest.mark.usefixtures("_pubkeys_present")
def test_gpg_absent_from_keyring(gpghome, gpg, gnupg, gnupg_keyring, keyring, key_a_fp):
assert gnupg.list_keys(keys=key_a_fp)
@ -235,3 +224,14 @@ def test_gpg_absent_from_keyring_delete_keyring(
assert "removed" in ret.changes
assert ret.changes["removed"] == keyring
assert not Path(keyring).exists()
@pytest.mark.usefixtures("_pubkeys_present")
def test_gpg_absent_test_mode_no_changes(gpghome, gpg, gnupg, key_a_fp):
assert gnupg.list_keys(keys=key_a_fp)
ret = gpg.absent(key_a_fp[-16:], gnupghome=str(gpghome), test=True)
assert ret.result is None
assert ret.changes
assert "deleted" in ret.changes
assert ret.changes["deleted"]
assert gnupg.list_keys(keys=key_a_fp)

View file

@ -162,65 +162,3 @@ def test_gpg_present_test_mode_no_changes(gpg_receive, gpg_trust, key, trust):
gpg_trust.assert_not_called()
assert ret["result"] is None
assert ret["changes"]
@pytest.mark.usefixtures("gpg_list_keys")
def test_gpg_absent_no_changes(gpg_delete):
ret = gpg.absent("nonexistent")
assert ret["result"]
assert not ret["changes"]
gpg_delete.assert_not_called()
@pytest.mark.usefixtures("gpg_list_keys")
@pytest.mark.parametrize(
"gpg_delete,expected",
[
({"res": True, "message": ["Public key for A deleted"]}, True),
(
{
"res": False,
"message": [
"Secret key exists, delete first or pass delete_secret=True."
],
},
False,
),
],
indirect=["gpg_delete"],
)
def test_gpg_absent_delete_key(gpg_delete, expected, keys_list):
list_ = Mock(spec="salt.modules.gpg.list_keys")
list_.side_effect = (keys_list, [x for x in keys_list if x["keyid"] != "A"])
with patch.dict(gpg.__salt__, {"gpg.list_keys": list_}):
ret = gpg.absent("A")
assert ret["result"] == expected
assert bool(ret["changes"]) == expected
gpg_delete.assert_called_once()
@pytest.mark.usefixtures("gpg_list_keys")
def test_gpg_absent_test_mode_no_changes(gpg_delete):
with patch.dict(gpg.__opts__, {"test": True}):
ret = gpg.absent("A")
gpg_delete.assert_not_called()
assert ret["result"] is None
assert bool(ret["changes"])
def test_gpg_absent_list_keys_with_gnupghome_and_user(gpg_list_keys):
gnupghome = "/pls_respect_me"
user = "imthereaswell"
gpg.absent("nonexistent", gnupghome=gnupghome, user=user)
gpg_list_keys.assert_called_with(gnupghome=gnupghome, user=user, keyring=None)
@pytest.mark.usefixtures("gpg_list_keys")
def test_gpg_absent_delete_key_called_with_correct_kwargs(gpg_delete):
key = "A"
user = "hellothere"
gnupghome = "/pls_sir"
gpg.absent(key, user=user, gnupghome=gnupghome)
gpg_delete.assert_called_with(
keyid=key, gnupghome=gnupghome, user=user, keyring=None, use_passphrase=False
)