summaryrefslogtreecommitdiffstats
path: root/ansible_collections/community/general/tests/unit
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 04:05:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 04:05:56 +0000
commit67c6a4d1dccb62159b9d9b2dea4e2f487446e276 (patch)
tree9ccbb35137f480bbbdb899accbda52a8135d3416 /ansible_collections/community/general/tests/unit
parentAdding upstream version 9.4.0+dfsg. (diff)
downloadansible-67c6a4d1dccb62159b9d9b2dea4e2f487446e276.tar.xz
ansible-67c6a4d1dccb62159b9d9b2dea4e2f487446e276.zip
Adding upstream version 9.5.1+dfsg.upstream/9.5.1+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/community/general/tests/unit')
-rw-r--r--ansible_collections/community/general/tests/unit/plugins/callback/test_loganalytics.py14
-rw-r--r--ansible_collections/community/general/tests/unit/plugins/callback/test_splunk.py12
-rw-r--r--ansible_collections/community/general/tests/unit/plugins/lookup/test_bitwarden.py86
3 files changed, 89 insertions, 23 deletions
diff --git a/ansible_collections/community/general/tests/unit/plugins/callback/test_loganalytics.py b/ansible_collections/community/general/tests/unit/plugins/callback/test_loganalytics.py
index 17932ed5f..4d7c2c9db 100644
--- a/ansible_collections/community/general/tests/unit/plugins/callback/test_loganalytics.py
+++ b/ansible_collections/community/general/tests/unit/plugins/callback/test_loganalytics.py
@@ -9,8 +9,8 @@ from ansible.executor.task_result import TaskResult
from ansible_collections.community.general.tests.unit.compat import unittest
from ansible_collections.community.general.tests.unit.compat.mock import patch, Mock
from ansible_collections.community.general.plugins.callback.loganalytics import AzureLogAnalyticsSource
-from datetime import datetime
+from datetime import datetime
import json
import sys
@@ -32,10 +32,10 @@ class TestAzureLogAnalytics(unittest.TestCase):
if sys.version_info < (3, 2):
self.assertRegex = self.assertRegexpMatches
- @patch('ansible_collections.community.general.plugins.callback.loganalytics.datetime')
+ @patch('ansible_collections.community.general.plugins.callback.loganalytics.now')
@patch('ansible_collections.community.general.plugins.callback.loganalytics.open_url')
- def test_overall(self, open_url_mock, mock_datetime):
- mock_datetime.utcnow.return_value = datetime(2020, 12, 1)
+ def test_overall(self, open_url_mock, mock_now):
+ mock_now.return_value = datetime(2020, 12, 1)
result = TaskResult(host=self.mock_host, task=self.mock_task, return_data={}, task_fields=self.task_fields)
self.loganalytics.send_event(workspace_id='01234567-0123-0123-0123-01234567890a',
@@ -52,10 +52,10 @@ class TestAzureLogAnalytics(unittest.TestCase):
self.assertEqual(sent_data['event']['uuid'], 'myuuid')
self.assertEqual(args[0], 'https://01234567-0123-0123-0123-01234567890a.ods.opinsights.azure.com/api/logs?api-version=2016-04-01')
- @patch('ansible_collections.community.general.plugins.callback.loganalytics.datetime')
+ @patch('ansible_collections.community.general.plugins.callback.loganalytics.now')
@patch('ansible_collections.community.general.plugins.callback.loganalytics.open_url')
- def test_auth_headers(self, open_url_mock, mock_datetime):
- mock_datetime.utcnow.return_value = datetime(2020, 12, 1)
+ def test_auth_headers(self, open_url_mock, mock_now):
+ mock_now.return_value = datetime(2020, 12, 1)
result = TaskResult(host=self.mock_host, task=self.mock_task, return_data={}, task_fields=self.task_fields)
self.loganalytics.send_event(workspace_id='01234567-0123-0123-0123-01234567890a',
diff --git a/ansible_collections/community/general/tests/unit/plugins/callback/test_splunk.py b/ansible_collections/community/general/tests/unit/plugins/callback/test_splunk.py
index ddcdae24c..c09540fc0 100644
--- a/ansible_collections/community/general/tests/unit/plugins/callback/test_splunk.py
+++ b/ansible_collections/community/general/tests/unit/plugins/callback/test_splunk.py
@@ -27,10 +27,10 @@ class TestSplunkClient(unittest.TestCase):
self.mock_host = Mock('MockHost')
self.mock_host.name = 'myhost'
- @patch('ansible_collections.community.general.plugins.callback.splunk.datetime')
+ @patch('ansible_collections.community.general.plugins.callback.splunk.now')
@patch('ansible_collections.community.general.plugins.callback.splunk.open_url')
- def test_timestamp_with_milliseconds(self, open_url_mock, mock_datetime):
- mock_datetime.utcnow.return_value = datetime(2020, 12, 1)
+ def test_timestamp_with_milliseconds(self, open_url_mock, mock_now):
+ mock_now.return_value = datetime(2020, 12, 1)
result = TaskResult(host=self.mock_host, task=self.mock_task, return_data={}, task_fields=self.task_fields)
self.splunk.send_event(
@@ -45,10 +45,10 @@ class TestSplunkClient(unittest.TestCase):
self.assertEqual(sent_data['event']['host'], 'my-host')
self.assertEqual(sent_data['event']['ip_address'], '1.2.3.4')
- @patch('ansible_collections.community.general.plugins.callback.splunk.datetime')
+ @patch('ansible_collections.community.general.plugins.callback.splunk.now')
@patch('ansible_collections.community.general.plugins.callback.splunk.open_url')
- def test_timestamp_without_milliseconds(self, open_url_mock, mock_datetime):
- mock_datetime.utcnow.return_value = datetime(2020, 12, 1)
+ def test_timestamp_without_milliseconds(self, open_url_mock, mock_now):
+ mock_now.return_value = datetime(2020, 12, 1)
result = TaskResult(host=self.mock_host, task=self.mock_task, return_data={}, task_fields=self.task_fields)
self.splunk.send_event(
diff --git a/ansible_collections/community/general/tests/unit/plugins/lookup/test_bitwarden.py b/ansible_collections/community/general/tests/unit/plugins/lookup/test_bitwarden.py
index 9270dd44e..04cad8d6c 100644
--- a/ansible_collections/community/general/tests/unit/plugins/lookup/test_bitwarden.py
+++ b/ansible_collections/community/general/tests/unit/plugins/lookup/test_bitwarden.py
@@ -6,6 +6,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
+import re
from ansible_collections.community.general.tests.unit.compat import unittest
from ansible_collections.community.general.tests.unit.compat.mock import patch
@@ -13,8 +14,10 @@ from ansible.errors import AnsibleError
from ansible.module_utils import six
from ansible.plugins.loader import lookup_loader
from ansible_collections.community.general.plugins.lookup.bitwarden import Bitwarden
+from ansible.parsing.ajson import AnsibleJSONEncoder
MOCK_COLLECTION_ID = "3b12a9da-7c49-40b8-ad33-aede017a7ead"
+MOCK_ORGANIZATION_ID = "292ba0c6-f289-11ee-9301-ef7b639ccd2a"
MOCK_RECORDS = [
{
@@ -48,7 +51,7 @@ MOCK_RECORDS = [
"name": "a_test",
"notes": None,
"object": "item",
- "organizationId": None,
+ "organizationId": MOCK_ORGANIZATION_ID,
"passwordHistory": [
{
"lastUsedDate": "2022-07-26T23:03:23.405Z",
@@ -68,9 +71,7 @@ MOCK_RECORDS = [
"type": 1
},
{
- "collectionIds": [
- MOCK_COLLECTION_ID
- ],
+ "collectionIds": [],
"deletedDate": None,
"favorite": False,
"folderId": None,
@@ -106,10 +107,30 @@ MOCK_RECORDS = [
"name": "dupe_name",
"notes": None,
"object": "item",
- "organizationId": None,
+ "organizationId": MOCK_ORGANIZATION_ID,
"reprompt": 0,
"revisionDate": "2022-07-27T03:42:46.673Z",
"type": 1
+ },
+ {
+ "collectionIds": [],
+ "deletedDate": None,
+ "favorite": False,
+ "folderId": None,
+ "id": "2bf517be-fb13-11ee-be89-a345aa369a94",
+ "login": {
+ "password": "e",
+ "passwordRevisionDate": None,
+ "totp": None,
+ "username": "f"
+ },
+ "name": "non_collection_org_record",
+ "notes": None,
+ "object": "item",
+ "organizationId": MOCK_ORGANIZATION_ID,
+ "reprompt": 0,
+ "revisionDate": "2024-14-15T11:30:00.000Z",
+ "type": 1
}
]
@@ -118,11 +139,41 @@ class MockBitwarden(Bitwarden):
unlocked = True
- def _get_matches(self, search_value=None, search_field="name", collection_id=None):
- if not search_value and collection_id:
- return list(filter(lambda record: collection_id in record['collectionIds'], MOCK_RECORDS))
+ def _run(self, args, stdin=None, expected_rc=0):
+ if args[0] == 'get':
+ if args[1] == 'item':
+ for item in MOCK_RECORDS:
+ if item.get('id') == args[2]:
+ return AnsibleJSONEncoder().encode(item), ''
+ if args[0] == 'list':
+ if args[1] == 'items':
+ try:
+ search_value = args[args.index('--search') + 1]
+ except ValueError:
+ search_value = None
+
+ try:
+ collection_to_filter = args[args.index('--collectionid') + 1]
+ except ValueError:
+ collection_to_filter = None
+
+ try:
+ organization_to_filter = args[args.index('--organizationid') + 1]
+ except ValueError:
+ organization_to_filter = None
+
+ items = []
+ for item in MOCK_RECORDS:
+ if search_value and not re.search(search_value, item.get('name')):
+ continue
+ if collection_to_filter and collection_to_filter not in item.get('collectionIds', []):
+ continue
+ if organization_to_filter and item.get('organizationId') != organization_to_filter:
+ continue
+ items.append(item)
+ return AnsibleJSONEncoder().encode(items), ''
- return list(filter(lambda record: record[search_field] == search_value, MOCK_RECORDS))
+ return '[]', ''
class LoggedOutMockBitwarden(MockBitwarden):
@@ -194,4 +245,19 @@ class TestLookupModule(unittest.TestCase):
@patch('ansible_collections.community.general.plugins.lookup.bitwarden._bitwarden', new=MockBitwarden())
def test_bitwarden_plugin_full_collection(self):
# Try to retrieve the full records of the given collection.
- self.assertEqual(MOCK_RECORDS, self.lookup.run(None, collection_id=MOCK_COLLECTION_ID)[0])
+ self.assertEqual([MOCK_RECORDS[0], MOCK_RECORDS[2]], self.lookup.run(None, collection_id=MOCK_COLLECTION_ID)[0])
+
+ @patch('ansible_collections.community.general.plugins.lookup.bitwarden._bitwarden', new=MockBitwarden())
+ def test_bitwarden_plugin_full_organization(self):
+ self.assertEqual([MOCK_RECORDS[0], MOCK_RECORDS[2], MOCK_RECORDS[3]],
+ self.lookup.run(None, organization_id=MOCK_ORGANIZATION_ID)[0])
+
+ @patch('ansible_collections.community.general.plugins.lookup.bitwarden._bitwarden', new=MockBitwarden())
+ def test_bitwarden_plugin_filter_organization(self):
+ self.assertEqual([MOCK_RECORDS[2]],
+ self.lookup.run(['dupe_name'], organization_id=MOCK_ORGANIZATION_ID)[0])
+
+ @patch('ansible_collections.community.general.plugins.lookup.bitwarden._bitwarden', new=MockBitwarden())
+ def test_bitwarden_plugin_full_collection_organization(self):
+ self.assertEqual([MOCK_RECORDS[0], MOCK_RECORDS[2]], self.lookup.run(None,
+ collection_id=MOCK_COLLECTION_ID, organization_id=MOCK_ORGANIZATION_ID)[0])