Add tests for lookup plugins

This commit is contained in:
Daniel Hokka Zakrisson 2012-11-04 16:01:58 +01:00
parent 47082a9171
commit 43419d7b20
2 changed files with 64 additions and 0 deletions

View file

@ -113,6 +113,10 @@ class TestPlaybook(unittest.TestCase):
def _run(self, test_playbook, host_list='test/ansible_hosts'):
''' run a module and get the localhost results '''
# This ensures tests are independent of eachother
ansible.playbook.SETUP_CACHE.clear()
EVENTS = []
self.test_callbacks = TestCallbacks()
self.playbook = ansible.playbook.PlayBook(
playbook = test_playbook,
@ -177,6 +181,29 @@ class TestPlaybook(unittest.TestCase):
assert utils.jsonify(expected, format=True) == utils.jsonify(actual, format=True)
def test_lookups(self):
pb = os.path.join(self.test_dir, 'lookup_plugins.yml')
actual = self._run(pb)
# if different, this will output to screen
print "**ACTUAL**"
print utils.jsonify(actual, format=True)
expected = {
"localhost": {
"changed": 7,
"failures": 0,
"ok": 9,
"skipped": 1,
"unreachable": 0
}
}
print "**EXPECTED**"
print utils.jsonify(expected, format=True)
assert utils.jsonify(expected, format=True) == utils.jsonify(actual,format=True)
assert len(EVENTS) == 44
def test_playbook_vars(self):
test_callbacks = TestCallbacks()
playbook = ansible.playbook.PlayBook(

37
test/lookup_plugins.yml Normal file
View file

@ -0,0 +1,37 @@
# simple test of lookup plugins in with_*
---
- hosts: all
vars:
empty_list: []
tasks:
- name: test with_items
action: command true
with_items:
- 1
- 2
- 3
- name: test with_items with empty list
action: command true
with_items: $empty_list
- name: test with_file and FILE
action: command test "$item" = "$FILE(sample.j2)"
with_file: sample.j2
- name: test with_pipe
action: command test "$item" = "$PIPE(cat sample.j2)"
with_pipe: cat sample.j2
- name: test LOOKUP and PIPE
action: command test "$LOOKUP(pipe, cat sample.j2)" = "$PIPE(cat sample.j2)"
- name: ensure test file doesnt exist
# command because file will return differently
action: command rm -f /tmp/ansible-test-with_lines-data
- name: test with_lines
action: shell echo "$item" >> /tmp/ansible-test-with_lines-data
with_lines: cat sample.j2
- name: verify with_lines
action: copy src=sample.j2 dest=/tmp/ansible-test-with_lines-data
- name: cleanup test file
action: file path=/tmp/ansible-test-with_lines-data state=absent