summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2017-01-19 09:25:30 -0600
committerJames Cammarata <jimi@sngx.net>2017-01-19 10:11:52 -0600
commitf4ecbc4c3ff8ce5269b59fdfe5e14abd9f163909 (patch)
treee02b103281aca7a4f7f842d604b2abf0409a5b31 /test
parentb12256acf27e1c4bee60dd7e79f4384b2cfef67f (diff)
downloadansible-f4ecbc4c3ff8ce5269b59fdfe5e14abd9f163909.tar.gz
Fixing iterator bug related to reworking of end-of-role detection
Bug was introduced in cae682607 (cherry picked from commit 9d549c34981694e9fb62d3aa37392a439b5ae487)
Diffstat (limited to 'test')
-rw-r--r--test/units/executor/test_play_iterator.py67
1 files changed, 64 insertions, 3 deletions
diff --git a/test/units/executor/test_play_iterator.py b/test/units/executor/test_play_iterator.py
index e11772031f..337342a349 100644
--- a/test/units/executor/test_play_iterator.py
+++ b/test/units/executor/test_play_iterator.py
@@ -98,6 +98,29 @@ class TestPlayIterator(unittest.TestCase):
- include: foo.yml
- name: role task after include
debug: msg="after include in role"
+ - block:
+ - name: starting role nested block 1
+ debug:
+ - block:
+ - name: role nested block 1 task 1
+ debug:
+ - name: role nested block 1 task 2
+ debug:
+ - name: role nested block 1 task 3
+ debug:
+ - name: end of role nested block 1
+ debug:
+ - name: starting role nested block 2
+ debug:
+ - block:
+ - name: role nested block 2 task 1
+ debug:
+ - name: role nested block 2 task 2
+ debug:
+ - name: role nested block 2 task 3
+ debug:
+ - name: end of role nested block 2
+ debug:
""",
'/etc/ansible/roles/test_role/tasks/foo.yml': """
- name: role included task
@@ -160,13 +183,11 @@ class TestPlayIterator(unittest.TestCase):
# role block task
(host_state, task) = itr.get_next_task_for_host(hosts[0])
self.assertIsNotNone(task)
- self.assertEqual(task.action, 'debug')
self.assertEqual(task.name, "role block task")
self.assertIsNotNone(task._role)
# role block always task
(host_state, task) = itr.get_next_task_for_host(hosts[0])
self.assertIsNotNone(task)
- self.assertEqual(task.action, 'debug')
self.assertEqual(task.name, "role always task")
self.assertIsNotNone(task._role)
# role include task
@@ -178,9 +199,49 @@ class TestPlayIterator(unittest.TestCase):
# role task after include
(host_state, task) = itr.get_next_task_for_host(hosts[0])
self.assertIsNotNone(task)
- self.assertEqual(task.action, 'debug')
self.assertEqual(task.name, "role task after include")
self.assertIsNotNone(task._role)
+ # role nested block tasks
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "starting role nested block 1")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 1 task 1")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 1 task 2")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 1 task 3")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "end of role nested block 1")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "starting role nested block 2")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 2 task 1")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 2 task 2")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "role nested block 2 task 3")
+ self.assertIsNotNone(task._role)
+ (host_state, task) = itr.get_next_task_for_host(hosts[0])
+ self.assertIsNotNone(task)
+ self.assertEqual(task.name, "end of role nested block 2")
+ self.assertIsNotNone(task._role)
# regular play task
(host_state, task) = itr.get_next_task_for_host(hosts[0])
self.assertIsNotNone(task)