From 43419d7b20e52ad3d009f8f4884b7595d216b5df Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Sun, 4 Nov 2012 16:01:58 +0100 Subject: [PATCH] Add tests for lookup plugins --- test/TestPlayBook.py | 27 +++++++++++++++++++++++++++ test/lookup_plugins.yml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 test/lookup_plugins.yml diff --git a/test/TestPlayBook.py b/test/TestPlayBook.py index 9dec825b5c4..9627d86c984 100644 --- a/test/TestPlayBook.py +++ b/test/TestPlayBook.py @@ -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( diff --git a/test/lookup_plugins.yml b/test/lookup_plugins.yml new file mode 100644 index 00000000000..e934fac145a --- /dev/null +++ b/test/lookup_plugins.yml @@ -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