From bad064ffc93c65e6f2b7c5877ac50cd6961654a3 Mon Sep 17 00:00:00 2001 From: jeanluc Date: Tue, 12 Sep 2023 03:19:36 +0200 Subject: [PATCH] Clean up new module unit tests --- tests/pytests/unit/modules/test_gpg.py | 110 +++++++++++++------------ 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/tests/pytests/unit/modules/test_gpg.py b/tests/pytests/unit/modules/test_gpg.py index afa148ea707..165564edc5a 100644 --- a/tests/pytests/unit/modules/test_gpg.py +++ b/tests/pytests/unit/modules/test_gpg.py @@ -1046,72 +1046,74 @@ def test_gpg_decrypt_message_with_gpg_passphrase_in_pillar(gpghome): assert ret["res"] is True -def test_gpg_receive_keys_no_user_id(): +@pytest.fixture(params={}) +def import_result_mock(request): + defaults = { + "gpg": Mock(), + "imported": 0, + "results": [], + "fingerprints": [], + "count": 0, + "no_user_id": 0, + "imported_rsa": 0, + "unchanged": 0, + "n_uids": 0, + "n_subk": 0, + "n_sigs": 0, + "n_revoc": 0, + "sec_read": 0, + "sec_imported": 0, + "sec_dups": 0, + "not_imported": 0, + "stderr": "", + "data": b"", + } + defaults.update(request.param) + import_result = MagicMock() + import_result.__bool__.return_value = False + for var, val in defaults.items(): + setattr(import_result, var, val) + return import_result + + +@pytest.mark.parametrize( + "import_result_mock", + ( + { + "count": 1, + "stderr": "gpg: key ABCDEF0123456789: no user ID\ngpg: Total number processed: 1\n[GNUPG:] IMPORT_RES 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", + }, + ), + indirect=True, +) +def test_gpg_receive_keys_no_user_id(import_result_mock): with patch("salt.modules.gpg._create_gpg") as create: with patch.dict( gpg.__salt__, {"user.info": MagicMock(), "config.option": Mock()} ): - import_result = MagicMock() - import_result.__bool__.return_value = False - for var, val in { - "gpg": Mock(), - "imported": 0, - "results": [], - "fingerprints": [], - "count": 1, - "no_user_id": 0, - "imported_rsa": 0, - "unchanged": 0, - "n_uids": 0, - "n_subk": 0, - "n_sigs": 0, - "n_revoc": 0, - "sec_read": 0, - "sec_imported": 0, - "sec_dups": 0, - "not_imported": 0, - "stderr": "gpg: key ABCDEF0123456789: no user ID\ngpg: Total number processed: 1\n[GNUPG:] IMPORT_RES 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", - "data": b"", - }.items(): - setattr(import_result, var, val) - create.return_value.recv_keys.return_value = import_result + create.return_value.recv_keys.return_value = import_result_mock res = gpg.receive_keys(keys="abc", user="abc") assert res["res"] is False - assert "no user ID" in res["message"][0] + assert any("no user ID" in x for x in res["message"]) -def test_gpg_receive_keys_keyserver_unavailable(): +@pytest.mark.parametrize( + "import_result_mock", + ( + { + "results": [{"fingerprint": None, "problem": "0", "text": "Other failure"}], + "stderr": "[GNUPG:] FAILURE recv-keys 167772346\ngpg: keyserver receive failed: No keyserver available\n", + "returncode": 2, + }, + ), + indirect=True, +) +def test_gpg_receive_keys_keyserver_unavailable(import_result_mock): with patch("salt.modules.gpg._create_gpg") as create: with patch.dict( gpg.__salt__, {"user.info": MagicMock(), "config.option": Mock()} ): - import_result = MagicMock() - import_result.__bool__.return_value = False - for var, val in { - "gpg": Mock(), - "results": [ - {"fingerprint": None, "problem": "0", "text": "Other failure"} - ], - "fingerprints": [], - "count": 0, - "no_user_id": 0, - "imported": 0, - "imported_rsa": 0, - "unchanged": 0, - "n_uids": 0, - "n_subk": 0, - "n_sigs": 0, - "n_revoc": 0, - "sec_read": 0, - "sec_imported": 0, - "sec_dups": 0, - "not_imported": 0, - "data": b"", - "stderr": "[GNUPG:] FAILURE recv-keys 167772346\ngpg: keyserver receive failed: No keyserver available\n", - "returncode": 2, - }.items(): - setattr(import_result, var, val) - create.return_value.recv_keys.return_value = import_result + create.return_value.recv_keys.return_value = import_result_mock res = gpg.receive_keys(keys="abc", user="abc") assert res["res"] is False assert any("No keyserver available" in x for x in res["message"])