31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
|
# Copyright (c) 2025 Ansible Project
|
||
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
|
||
|
from __future__ import (absolute_import, division, print_function)
|
||
|
__metaclass__ = type
|
||
|
|
||
|
import json
|
||
|
import pytest
|
||
|
|
||
|
from .onepassword_common import SSH_KEY_MOCK_ENTRIES
|
||
|
|
||
|
from ansible.plugins.loader import lookup_loader
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
("vault", "queries", "kwargs", "output", "expected"),
|
||
|
(
|
||
|
(item["vault_name"], item["queries"], item.get("kwargs", {}), item["output"], item["expected"])
|
||
|
for item in SSH_KEY_MOCK_ENTRIES
|
||
|
)
|
||
|
)
|
||
|
def test_ssh_key(mocker, vault, queries, kwargs, output, expected):
|
||
|
mocker.patch("ansible_collections.community.general.plugins.lookup.onepassword.OnePass.assert_logged_in", return_value=True)
|
||
|
mocker.patch("ansible_collections.community.general.plugins.lookup.onepassword.OnePassCLIBase._run", return_value=(0, json.dumps(output), ""))
|
||
|
|
||
|
op_lookup = lookup_loader.get("community.general.onepassword_ssh_key")
|
||
|
result = op_lookup.run(queries, vault=vault, **kwargs)
|
||
|
|
||
|
assert result == expected
|