summaryrefslogtreecommitdiff
path: root/test/units/playbook/role/test_role.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/playbook/role/test_role.py')
-rw-r--r--test/units/playbook/role/test_role.py77
1 files changed, 34 insertions, 43 deletions
diff --git a/test/units/playbook/role/test_role.py b/test/units/playbook/role/test_role.py
index 5d47631f..9d6b0edc 100644
--- a/test/units/playbook/role/test_role.py
+++ b/test/units/playbook/role/test_role.py
@@ -21,10 +21,12 @@ __metaclass__ = type
from collections.abc import Container
+import pytest
+
from units.compat import unittest
from unittest.mock import patch, MagicMock
-from ansible.errors import AnsibleError, AnsibleParserError
+from ansible.errors import AnsibleParserError
from ansible.playbook.block import Block
from units.mock.loader import DictDataLoader
@@ -42,12 +44,9 @@ class TestHashParams(unittest.TestCase):
self._assert_set(res)
self._assert_hashable(res)
- def _assert_hashable(self, res):
- a_dict = {}
- try:
- a_dict[res] = res
- except TypeError as e:
- self.fail('%s is not hashable: %s' % (res, e))
+ @staticmethod
+ def _assert_hashable(res):
+ hash(res)
def _assert_set(self, res):
self.assertIsInstance(res, frozenset)
@@ -87,36 +86,28 @@ class TestHashParams(unittest.TestCase):
def test_generator(self):
def my_generator():
- for i in ['a', 1, None, {}]:
- yield i
+ yield
params = my_generator()
res = hash_params(params)
self._assert_hashable(res)
+ assert list(params)
def test_container_but_not_iterable(self):
# This is a Container that is not iterable, which is unlikely but...
class MyContainer(Container):
- def __init__(self, some_thing):
- self.data = []
- self.data.append(some_thing)
+ def __init__(self, _some_thing):
+ pass
def __contains__(self, item):
- return item in self.data
-
- def __hash__(self):
- return hash(self.data)
-
- def __len__(self):
- return len(self.data)
+ """Implementation omitted, since it will never be called."""
- def __call__(self):
- return False
+ params = MyContainer('foo bar')
- foo = MyContainer('foo bar')
- params = foo
+ with pytest.raises(TypeError) as ex:
+ hash_params(params)
- self.assertRaises(TypeError, hash_params, params)
+ assert ex.value.args == ("'MyContainer' object is not iterable",)
def test_param_dict_dupe_values(self):
params1 = {'foo': False}
@@ -151,18 +142,18 @@ class TestHashParams(unittest.TestCase):
self.assertNotEqual(hash(res1), hash(res2))
self.assertNotEqual(res1, res2)
- foo = {}
- foo[res1] = 'params1'
- foo[res2] = 'params2'
+ params_dict = {}
+ params_dict[res1] = 'params1'
+ params_dict[res2] = 'params2'
- self.assertEqual(len(foo), 2)
+ self.assertEqual(len(params_dict), 2)
- del foo[res2]
- self.assertEqual(len(foo), 1)
+ del params_dict[res2]
+ self.assertEqual(len(params_dict), 1)
- for key in foo:
- self.assertTrue(key in foo)
- self.assertIn(key, foo)
+ for key in params_dict:
+ self.assertTrue(key in params_dict)
+ self.assertIn(key, params_dict)
class TestRole(unittest.TestCase):
@@ -177,7 +168,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_tasks', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -199,7 +190,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_tasks', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play, from_files=dict(tasks='custom_main'))
@@ -217,7 +208,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_handlers', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -238,7 +229,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_vars', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -259,7 +250,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_vars', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -280,7 +271,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_vars', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -303,7 +294,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_vars', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -323,7 +314,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_vars', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -370,7 +361,7 @@ class TestRole(unittest.TestCase):
mock_play = MagicMock()
mock_play.collections = None
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load('foo_metadata', play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)
@@ -415,7 +406,7 @@ class TestRole(unittest.TestCase):
})
mock_play = MagicMock()
- mock_play.ROLE_CACHE = {}
+ mock_play.role_cache = {}
i = RoleInclude.load(dict(role='foo_complex'), play=mock_play, loader=fake_loader)
r = Role.load(i, play=mock_play)