1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-02-04 07:51:50 +00:00
community.general/tests/unit/plugins/lookup/test_etcd3.py
Felix Fontein 236b9c0e04
Sort imports with ruff check --fix (#11400)
Sort imports with ruff check --fix.
2026-01-09 07:40:58 +01:00

52 lines
1.8 KiB
Python

#
# Copyright (c) 2020, SCC France, Eric Belhomme <ebelhomme@fr.scc.com>
# 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 annotations
import unittest
from unittest.mock import MagicMock, patch
from ansible.plugins.loader import lookup_loader
from ansible_collections.community.general.plugins.lookup import etcd3
class FakeKVMetadata:
def __init__(self, keyvalue, header):
self.key = keyvalue
self.create_revision = ""
self.mod_revision = ""
self.version = ""
self.lease_id = ""
self.response_header = header
class FakeEtcd3Client(MagicMock):
def get_prefix(self, key):
for i in range(1, 4):
yield self.get(f"{key}_{i}")
def get(self, key):
return (f"{key} value", FakeKVMetadata(key, None))
class TestLookupModule(unittest.TestCase):
def setUp(self):
etcd3.HAS_ETCD = True
self.lookup = lookup_loader.get("community.general.etcd3")
@patch("ansible_collections.community.general.plugins.lookup.etcd3.etcd3_client", FakeEtcd3Client())
def test_key(self):
expected_result = [{"key": "a_key", "value": "a_key value"}]
self.assertListEqual(expected_result, self.lookup.run(["a_key"], []))
@patch("ansible_collections.community.general.plugins.lookup.etcd3.etcd3_client", FakeEtcd3Client())
def test_key_prefix(self):
expected_result = [
{"key": "a_key_1", "value": "a_key_1 value"},
{"key": "a_key_2", "value": "a_key_2 value"},
{"key": "a_key_3", "value": "a_key_3 value"},
]
self.assertListEqual(expected_result, self.lookup.run(["a_key"], [], **{"prefix": True}))