diff --git a/salt/states/gpg.py b/salt/states/gpg.py index 95b7dabe84c..43949978401 100644 --- a/salt/states/gpg.py +++ b/salt/states/gpg.py @@ -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, diff --git a/tests/pytests/functional/states/test_gpg.py b/tests/pytests/functional/states/test_gpg.py index 486c6642cc7..f35243ffcb0 100644 --- a/tests/pytests/functional/states/test_gpg.py +++ b/tests/pytests/functional/states/test_gpg.py @@ -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) diff --git a/tests/pytests/unit/states/test_gpg.py b/tests/pytests/unit/states/test_gpg.py index 7250bdabf69..13ba97cd493 100644 --- a/tests/pytests/unit/states/test_gpg.py +++ b/tests/pytests/unit/states/test_gpg.py @@ -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 - )