diff options
Diffstat (limited to 'test/integration/targets/debugger')
-rw-r--r-- | test/integration/targets/debugger/aliases | 3 | ||||
-rw-r--r-- | test/integration/targets/debugger/inventory | 2 | ||||
-rwxr-xr-x | test/integration/targets/debugger/runme.sh | 5 | ||||
-rwxr-xr-x | test/integration/targets/debugger/test_run_once.py | 35 | ||||
-rw-r--r-- | test/integration/targets/debugger/test_run_once_playbook.yml | 12 |
5 files changed, 57 insertions, 0 deletions
diff --git a/test/integration/targets/debugger/aliases b/test/integration/targets/debugger/aliases new file mode 100644 index 0000000..981d8b7 --- /dev/null +++ b/test/integration/targets/debugger/aliases @@ -0,0 +1,3 @@ +shippable/posix/group3 +context/controller +setup/always/setup_pexpect diff --git a/test/integration/targets/debugger/inventory b/test/integration/targets/debugger/inventory new file mode 100644 index 0000000..81502d5 --- /dev/null +++ b/test/integration/targets/debugger/inventory @@ -0,0 +1,2 @@ +testhost ansible_connection=local +testhost2 ansible_connection=local diff --git a/test/integration/targets/debugger/runme.sh b/test/integration/targets/debugger/runme.sh new file mode 100755 index 0000000..6a51d23 --- /dev/null +++ b/test/integration/targets/debugger/runme.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -eux + +./test_run_once.py -i inventory "$@" diff --git a/test/integration/targets/debugger/test_run_once.py b/test/integration/targets/debugger/test_run_once.py new file mode 100755 index 0000000..237f9c2 --- /dev/null +++ b/test/integration/targets/debugger/test_run_once.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +import io +import os +import sys + +import pexpect + + +env_vars = { + 'ANSIBLE_NOCOLOR': 'True', + 'ANSIBLE_RETRY_FILES_ENABLED': 'False', +} + +env = os.environ.copy() +env.update(env_vars) + +with io.BytesIO() as logfile: + debugger_test_test = pexpect.spawn( + 'ansible-playbook', + args=['test_run_once_playbook.yml'] + sys.argv[1:], + timeout=10, + env=env + ) + + debugger_test_test.logfile = logfile + + debugger_test_test.expect_exact('TASK: Task 1 (debug)> ') + debugger_test_test.send('task.args["that"] = "true"\r') + debugger_test_test.expect_exact('TASK: Task 1 (debug)> ') + debugger_test_test.send('r\r') + debugger_test_test.expect(pexpect.EOF) + debugger_test_test.close() + + assert str(logfile.getvalue()).count('Task 2 executed') == 2 diff --git a/test/integration/targets/debugger/test_run_once_playbook.yml b/test/integration/targets/debugger/test_run_once_playbook.yml new file mode 100644 index 0000000..ede3a53 --- /dev/null +++ b/test/integration/targets/debugger/test_run_once_playbook.yml @@ -0,0 +1,12 @@ +- hosts: testhost, testhost2 + gather_facts: false + debugger: on_failed + tasks: + - name: Task 1 + assert: + that: 'false' + run_once: yes + + - name: Task 2 + debug: + msg: "Task 2 executed" |