Commit b9e3b053 by Michael DeHaan

Simplify playbook tests so things are not timing dependent in the poll section,…

Simplify playbook tests so things are not timing dependent in the poll section, which is leading to tests
not being consistent between runs, even though there wasn't an error.  Now we'll just check the final change
counts, which should be just as solid and lead to less churn in the events file.
parent a0480a1b
......@@ -139,20 +139,27 @@ class TestPlaybook(unittest.TestCase):
callbacks = self.test_callbacks,
runner_callbacks = self.test_callbacks
)
results = self.playbook.run()
return dict(
results = results,
events = EVENTS
)
return self.playbook.run()
def test_one(self):
pb = os.path.join(self.test_dir, 'playbook1.yml')
expected = os.path.join(self.test_dir, 'playbook1.events')
expected = utils.json_loads(file(expected).read())
actual = self._run(pb)
# if different, this will output to screen
print "**ACTUAL**"
print utils.bigjson(actual)
assert cmp(expected, actual) == 0, "expected events match actual events"
expected = {
"127.0.0.2": {
"changed": 9,
"failures": 0,
"ok": 12,
"skipped": 1,
"unreachable": 0
}
}
print "**EXPECTED**"
print utils.bigjson(expected)
assert utils.bigjson(expected) == utils.bigjson(actual)
# make sure the template module took options from the vars section
data = file('/tmp/ansible_test_data_template.out').read()
......
{
"events": [
"start",
[
"play start",
[
"all"
]
],
[
"ok",
[
"127.0.0.2",
{
"answer": "Wuh, I think so, Brain, but if we didn't have ears, we'd look like weasels.",
"changed": true,
"metadata": "/etc/ansible/setup",
"port": 5150,
"written": "/etc/ansible/setup"
}
]
],
[
"import",
[
"127.0.0.2",
"/home/mdehaan/ansible/test/common_vars.yml"
]
],
[
"import",
[
"127.0.0.2",
"/home/mdehaan/ansible/test/CentOS.yml"
]
],
[
"ok",
[
"127.0.0.2",
{
"answer": "Wuh, I think so, Brain, but if we didn't have ears, we'd look like weasels.",
"changed": true,
"cow": "moo",
"duck": "quack",
"metadata": "/etc/ansible/setup",
"port": 5150,
"testing": "default",
"written": "/etc/ansible/setup"
}
]
],
[
"task start",
[
"test basic success command",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": [
"/bin/true"
],
"rc": 0,
"stderr": "",
"stdout": ""
}
]
],
[
"task start",
[
"test basic success command 2",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": [
"/bin/true"
],
"rc": 0,
"stderr": "",
"stdout": ""
}
]
],
[
"task start",
[
"test basic shell, plus two ways to dereference a variable",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "echo $HOME 5150 5150 ",
"rc": 0,
"stderr": "",
"stdout": "/root 5150 5150"
}
]
],
[
"task start",
[
"test vars_files imports",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "echo quack moo default ",
"rc": 0,
"stderr": "",
"stdout": "quack moo default"
}
]
],
[
"task start",
[
"test copy",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"group": "root",
"mode": 420,
"path": "/tmp/ansible_test_data_copy.out",
"state": "file",
"user": "root"
}
]
],
[
"notify",
[
"127.0.0.2",
"on change 1"
]
],
[
"task start",
[
"test template",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"group": "root",
"mode": 420,
"path": "/tmp/ansible_test_data_template.out",
"state": "file",
"user": "root"
}
]
],
[
"notify",
[
"127.0.0.2",
"on change 1"
]
],
[
"notify",
[
"127.0.0.2",
"on change 2"
]
],
[
"task start",
[
"async poll test",
false
]
],
[
"ok",
[
"127.0.0.2",
{
"started": 1
}
]
],
[
"ok",
[
"127.0.0.2",
{
"started": 1
}
]
],
[
"async poll",
[
"127.0.0.2"
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "sleep 5 ",
"finished": 1,
"rc": 0,
"stderr": "",
"stdout": ""
}
]
],
[
"task start",
[
"this should be skipped",
false
]
],
[
"skipped",
[
"127.0.0.2"
]
],
[
"task start",
[
"on change 1",
true
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "echo 'this should fire once' ",
"rc": 0,
"stderr": "",
"stdout": "this should fire once"
}
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "echo 'this should fire once' ",
"rc": 0,
"stderr": "",
"stdout": "this should fire once"
}
]
],
[
"task start",
[
"on change 2",
true
]
],
[
"ok",
[
"127.0.0.2",
{
"changed": true,
"cmd": "echo 'this should fire once also' ",
"rc": 0,
"stderr": "",
"stdout": "this should fire once also"
}
]
]
],
"results": {
"127.0.0.2": {
"changed": 9,
"failures": 0,
"ok": 12,
"skipped": 1,
"unreachable": 0
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment