fixed tests to follow new invocation structure

also added maxdiff setting to see issues clearly when they happen
This commit is contained in:
Brian Coca 2015-12-23 11:45:07 -05:00
parent 9a118ce213
commit d89d7951e6

View file

@ -31,8 +31,11 @@ from ansible.module_utils import basic
from ansible.module_utils.basic import heuristic_log_sanitize from ansible.module_utils.basic import heuristic_log_sanitize
from ansible.module_utils.basic import return_values, remove_values from ansible.module_utils.basic import return_values, remove_values
empty_invocation = {u'module_args': {}}
@unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)") @unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)")
class TestAnsibleModuleExitJson(unittest.TestCase): class TestAnsibleModuleExitJson(unittest.TestCase):
def setUp(self): def setUp(self):
self.COMPLEX_ARGS = basic.MODULE_COMPLEX_ARGS self.COMPLEX_ARGS = basic.MODULE_COMPLEX_ARGS
basic.MODULE_COMPLEX_ARGS = '{}' basic.MODULE_COMPLEX_ARGS = '{}'
@ -56,7 +59,7 @@ class TestAnsibleModuleExitJson(unittest.TestCase):
else: else:
self.assertEquals(ctx.exception.code, 0) self.assertEquals(ctx.exception.code, 0)
return_val = json.loads(self.fake_stream.getvalue()) return_val = json.loads(self.fake_stream.getvalue())
self.assertEquals(return_val, dict(changed=False, invocation={})) self.assertEquals(return_val, dict(changed=False, invocation=empty_invocation))
def test_exit_json_args_exits(self): def test_exit_json_args_exits(self):
with self.assertRaises(SystemExit) as ctx: with self.assertRaises(SystemExit) as ctx:
@ -67,7 +70,7 @@ class TestAnsibleModuleExitJson(unittest.TestCase):
else: else:
self.assertEquals(ctx.exception.code, 0) self.assertEquals(ctx.exception.code, 0)
return_val = json.loads(self.fake_stream.getvalue()) return_val = json.loads(self.fake_stream.getvalue())
self.assertEquals(return_val, dict(msg="message", changed=False, invocation={})) self.assertEquals(return_val, dict(msg="message", changed=False, invocation=empty_invocation))
def test_fail_json_exits(self): def test_fail_json_exits(self):
with self.assertRaises(SystemExit) as ctx: with self.assertRaises(SystemExit) as ctx:
@ -78,13 +81,13 @@ class TestAnsibleModuleExitJson(unittest.TestCase):
else: else:
self.assertEquals(ctx.exception.code, 1) self.assertEquals(ctx.exception.code, 1)
return_val = json.loads(self.fake_stream.getvalue()) return_val = json.loads(self.fake_stream.getvalue())
self.assertEquals(return_val, dict(msg="message", failed=True, invocation={})) self.assertEquals(return_val, dict(msg="message", failed=True, invocation=empty_invocation))
def test_exit_json_proper_changed(self): def test_exit_json_proper_changed(self):
with self.assertRaises(SystemExit) as ctx: with self.assertRaises(SystemExit) as ctx:
self.module.exit_json(changed=True, msg='success') self.module.exit_json(changed=True, msg='success')
return_val = json.loads(self.fake_stream.getvalue()) return_val = json.loads(self.fake_stream.getvalue())
self.assertEquals(return_val, dict(changed=True, msg='success', invocation={})) self.assertEquals(return_val, dict(changed=True, msg='success', invocation=empty_invocation))
@unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)") @unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)")
class TestAnsibleModuleExitValuesRemoved(unittest.TestCase): class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
@ -95,21 +98,21 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
not_secret='following the leader', msg='here'), not_secret='following the leader', msg='here'),
dict(one=1, pwd=OMIT, url='https://username:password12345@foo.com/login/', dict(one=1, pwd=OMIT, url='https://username:password12345@foo.com/login/',
not_secret='following the leader', changed=False, msg='here', not_secret='following the leader', changed=False, msg='here',
invocation=dict(password=OMIT, token=None, username='person')), invocation=dict(module_args=dict(password=OMIT, token=None, username='person'))),
), ),
(dict(username='person', password='password12345'), (dict(username='person', password='password12345'),
dict(one=1, pwd='$ecret k3y', url='https://username:password12345@foo.com/login/', dict(one=1, pwd='$ecret k3y', url='https://username:password12345@foo.com/login/',
not_secret='following the leader', msg='here'), not_secret='following the leader', msg='here'),
dict(one=1, pwd='$ecret k3y', url='https://username:********@foo.com/login/', dict(one=1, pwd='$ecret k3y', url='https://username:********@foo.com/login/',
not_secret='following the leader', changed=False, msg='here', not_secret='following the leader', changed=False, msg='here',
invocation=dict(password=OMIT, token=None, username='person')), invocation=dict(module_args=dict(password=OMIT, token=None, username='person'))),
), ),
(dict(username='person', password='$ecret k3y'), (dict(username='person', password='$ecret k3y'),
dict(one=1, pwd='$ecret k3y', url='https://username:$ecret k3y@foo.com/login/', dict(one=1, pwd='$ecret k3y', url='https://username:$ecret k3y@foo.com/login/',
not_secret='following the leader', msg='here'), not_secret='following the leader', msg='here'),
dict(one=1, pwd=OMIT, url='https://username:********@foo.com/login/', dict(one=1, pwd=OMIT, url='https://username:********@foo.com/login/',
not_secret='following the leader', changed=False, msg='here', not_secret='following the leader', changed=False, msg='here',
invocation=dict(password=OMIT, token=None, username='person')), invocation=dict(module_args=dict(password=OMIT, token=None, username='person'))),
), ),
) )
@ -122,6 +125,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
sys.stdout = self.old_stdout sys.stdout = self.old_stdout
def test_exit_json_removes_values(self): def test_exit_json_removes_values(self):
self.maxDiff = None
for args, return_val, expected in self.dataset: for args, return_val, expected in self.dataset:
sys.stdout = StringIO() sys.stdout = StringIO()
basic.MODULE_COMPLEX_ARGS = json.dumps(args) basic.MODULE_COMPLEX_ARGS = json.dumps(args)
@ -137,6 +141,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
self.assertEquals(json.loads(sys.stdout.getvalue()), expected) self.assertEquals(json.loads(sys.stdout.getvalue()), expected)
def test_fail_json_removes_values(self): def test_fail_json_removes_values(self):
self.maxDiff = None
for args, return_val, expected in self.dataset: for args, return_val, expected in self.dataset:
expected = copy.deepcopy(expected) expected = copy.deepcopy(expected)
del expected['changed'] del expected['changed']