Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ansible/ansible.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Lenferink <lenferinkroy@gmail.com>2022-11-09 23:29:24 +0300
committerGitHub <noreply@github.com>2022-11-09 23:29:24 +0300
commita3531ac422c727df0748812c73a38f9950eebda9 (patch)
treecd28ad50ce5cf1ff57a07dcbb44cd6cbc26bed19
parent196084773b6a03690fe047c1b1f49e9c2c9b8be5 (diff)
Refactor structure of group module integration tests (#78652)
This to match the structure with the tests for the user module. When having the tests available as stand-alone tests, it will be easier to add more integration tests in the future.
-rw-r--r--test/integration/targets/group/files/get_free_gid.py23
-rw-r--r--test/integration/targets/group/files/get_gid_for_group.py18
-rw-r--r--test/integration/targets/group/files/gidget.py15
-rw-r--r--test/integration/targets/group/tasks/main.yml23
-rw-r--r--test/integration/targets/group/tasks/tests.yml638
5 files changed, 374 insertions, 343 deletions
diff --git a/test/integration/targets/group/files/get_free_gid.py b/test/integration/targets/group/files/get_free_gid.py
new file mode 100644
index 00000000000..4c07b5e3bc4
--- /dev/null
+++ b/test/integration/targets/group/files/get_free_gid.py
@@ -0,0 +1,23 @@
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import grp
+
+
+def main():
+ gids = [g.gr_gid for g in grp.getgrall()]
+
+ # Start the gid numbering with 1
+ # FreeBSD doesn't support the usage of gid 0, it doesn't fail (rc=0) but instead a number in the normal
+ # range is picked.
+ i = 1
+ while True:
+ if i not in gids:
+ print(i)
+ break
+ i += 1
+
+
+if __name__ == '__main__':
+ main()
diff --git a/test/integration/targets/group/files/get_gid_for_group.py b/test/integration/targets/group/files/get_gid_for_group.py
new file mode 100644
index 00000000000..5a8cc41f31f
--- /dev/null
+++ b/test/integration/targets/group/files/get_gid_for_group.py
@@ -0,0 +1,18 @@
+
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import grp
+import sys
+
+
+def main():
+ group_name = None
+ if len(sys.argv) >= 2:
+ group_name = sys.argv[1]
+
+ print(grp.getgrnam(group_name).gr_gid)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/test/integration/targets/group/files/gidget.py b/test/integration/targets/group/files/gidget.py
deleted file mode 100644
index 4b771516fdd..00000000000
--- a/test/integration/targets/group/files/gidget.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import (absolute_import, division, print_function)
-__metaclass__ = type
-
-import grp
-
-gids = [g.gr_gid for g in grp.getgrall()]
-
-i = 0
-while True:
- if i not in gids:
- print(i)
- break
- i += 1
diff --git a/test/integration/targets/group/tasks/main.yml b/test/integration/targets/group/tasks/main.yml
index eb8126ddf6d..21235240354 100644
--- a/test/integration/targets/group/tasks/main.yml
+++ b/test/integration/targets/group/tasks/main.yml
@@ -16,25 +16,4 @@
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
-- name: ensure test groups are deleted before the test
- group:
- name: '{{ item }}'
- state: absent
- loop:
- - ansibullgroup
- - ansibullgroup2
- - ansibullgroup3
-
-- block:
- - name: run tests
- include_tasks: tests.yml
-
- always:
- - name: remove test groups after test
- group:
- name: '{{ item }}'
- state: absent
- loop:
- - ansibullgroup
- - ansibullgroup2
- - ansibullgroup3 \ No newline at end of file
+- import_tasks: tests.yml
diff --git a/test/integration/targets/group/tasks/tests.yml b/test/integration/targets/group/tasks/tests.yml
index f9a812200e7..f81f570b6f9 100644
--- a/test/integration/targets/group/tasks/tests.yml
+++ b/test/integration/targets/group/tasks/tests.yml
@@ -1,343 +1,369 @@
---
-##
-## group add
-##
-
-- name: create group (check mode)
- group:
- name: ansibullgroup
- state: present
- register: create_group_check
- check_mode: True
-
-- name: get result of create group (check mode)
- script: 'grouplist.sh "{{ ansible_distribution }}"'
- register: create_group_actual_check
-
-- name: assert create group (check mode)
- assert:
- that:
- - create_group_check is changed
- - '"ansibullgroup" not in create_group_actual_check.stdout_lines'
-
-- name: create group
- group:
- name: ansibullgroup
- state: present
- register: create_group
-
-- name: get result of create group
- script: 'grouplist.sh "{{ ansible_distribution }}"'
- register: create_group_actual
-
-- name: assert create group
- assert:
- that:
- - create_group is changed
- - create_group.gid is defined
- - '"ansibullgroup" in create_group_actual.stdout_lines'
-
-- name: create group (idempotent)
+- name: ensure test groups are deleted before the test
group:
- name: ansibullgroup
- state: present
- register: create_group_again
+ name: '{{ item }}'
+ state: absent
+ loop:
+ - ansibullgroup
+ - ansibullgroup2
+ - ansibullgroup3
-- name: assert create group (idempotent)
- assert:
- that:
- - not create_group_again is changed
+- block:
+ ##
+ ## group add
+ ##
-##
-## group check
-##
+ - name: create group (check mode)
+ group:
+ name: ansibullgroup
+ state: present
+ register: create_group_check
+ check_mode: true
-- name: run existing group check tests
- group:
- name: "{{ create_group_actual.stdout_lines|random }}"
- state: present
- with_sequence: start=1 end=5
- register: group_test1
-
-- name: validate results for testcase 1
- assert:
- that:
- - group_test1.results is defined
- - group_test1.results|length == 5
-
-- name: validate change results for testcase 1
- assert:
- that:
- - not group_test1 is changed
-
-##
-## group add with gid
-##
-
-- name: get the next available gid
- script: gidget.py
- args:
- executable: '{{ ansible_python_interpreter }}'
- register: gid
-
-- name: create a group with a gid (check mode)
- group:
- name: ansibullgroup2
- gid: '{{ gid.stdout_lines[0] }}'
- state: present
- register: create_group_gid_check
- check_mode: True
-
-- name: get result of create a group with a gid (check mode)
- script: 'grouplist.sh "{{ ansible_distribution }}"'
- register: create_group_gid_actual_check
-
-- name: assert create group with a gid (check mode)
- assert:
- that:
- - create_group_gid_check is changed
- - '"ansibullgroup2" not in create_group_gid_actual_check.stdout_lines'
-
-- name: create a group with a gid
- group:
- name: ansibullgroup2
- gid: '{{ gid.stdout_lines[0] }}'
- state: present
- register: create_group_gid
-
-- name: get gid of created group
- command: "{{ ansible_python_interpreter | quote }} -c \"import grp; print(grp.getgrnam('ansibullgroup2').gr_gid)\""
- register: create_group_gid_actual
-
-- name: assert create group with a gid
- assert:
- that:
- - create_group_gid is changed
- - create_group_gid.gid | int == gid.stdout_lines[0] | int
- - create_group_gid_actual.stdout | trim | int == gid.stdout_lines[0] | int
-
-- name: create a group with a gid (idempotent)
- group:
- name: ansibullgroup2
- gid: '{{ gid.stdout_lines[0] }}'
- state: present
- register: create_group_gid_again
+ - name: get result of create group (check mode)
+ script: 'grouplist.sh "{{ ansible_distribution }}"'
+ register: create_group_actual_check
-- name: assert create group with a gid (idempotent)
- assert:
- that:
- - not create_group_gid_again is changed
- - create_group_gid_again.gid | int == gid.stdout_lines[0] | int
+ - name: assert create group (check mode)
+ assert:
+ that:
+ - create_group_check is changed
+ - '"ansibullgroup" not in create_group_actual_check.stdout_lines'
-- block:
- - name: create a group with a non-unique gid
+ - name: create group
group:
- name: ansibullgroup3
- gid: '{{ gid.stdout_lines[0] }}'
- non_unique: true
+ name: ansibullgroup
state: present
- register: create_group_gid_non_unique
+ register: create_group
- - name: validate gid required with non_unique
+ - name: get result of create group
+ script: 'grouplist.sh "{{ ansible_distribution }}"'
+ register: create_group_actual
+
+ - name: assert create group
+ assert:
+ that:
+ - create_group is changed
+ - create_group.gid is defined
+ - '"ansibullgroup" in create_group_actual.stdout_lines'
+
+ - name: create group (idempotent)
group:
- name: foo
- non_unique: true
- register: missing_gid
- ignore_errors: true
+ name: ansibullgroup
+ state: present
+ register: create_group_again
- - name: assert create group with a non unique gid
+ - name: assert create group (idempotent)
assert:
that:
- - create_group_gid_non_unique is changed
- - create_group_gid_non_unique.gid | int == gid.stdout_lines[0] | int
- - missing_gid is failed
- when: ansible_facts.distribution not in ['MacOSX', 'Alpine']
+ - not create_group_again is changed
-##
-## group remove
-##
+ ##
+ ## group check
+ ##
-- name: delete group (check mode)
- group:
- name: ansibullgroup
- state: absent
- register: delete_group_check
- check_mode: True
+ - name: run existing group check tests
+ group:
+ name: "{{ create_group_actual.stdout_lines|random }}"
+ state: present
+ with_sequence: start=1 end=5
+ register: group_test1
-- name: get result of delete group (check mode)
- script: grouplist.sh "{{ ansible_distribution }}"
- register: delete_group_actual_check
+ - name: validate results for testcase 1
+ assert:
+ that:
+ - group_test1.results is defined
+ - group_test1.results|length == 5
-- name: assert delete group (check mode)
- assert:
- that:
- - delete_group_check is changed
- - '"ansibullgroup" in delete_group_actual_check.stdout_lines'
+ - name: validate change results for testcase 1
+ assert:
+ that:
+ - not group_test1 is changed
-- name: delete group
- group:
- name: ansibullgroup
- state: absent
- register: delete_group
+ ##
+ ## group add with gid
+ ##
-- name: get result of delete group
- script: grouplist.sh "{{ ansible_distribution }}"
- register: delete_group_actual
+ - name: get the next available gid
+ script: get_free_gid.py
+ args:
+ executable: '{{ ansible_python_interpreter }}'
+ register: gid
-- name: assert delete group
- assert:
- that:
- - delete_group is changed
- - '"ansibullgroup" not in delete_group_actual.stdout_lines'
+ - name: create a group with a gid (check mode)
+ group:
+ name: ansibullgroup2
+ gid: '{{ gid.stdout_lines[0] }}'
+ state: present
+ register: create_group_gid_check
+ check_mode: true
-- name: delete group (idempotent)
- group:
- name: ansibullgroup
- state: absent
- register: delete_group_again
-
-- name: assert delete group (idempotent)
- assert:
- that:
- - not delete_group_again is changed
-
-- name: Ensure lgroupadd is present
- action: "{{ ansible_facts.pkg_mgr }}"
- args:
- name: libuser
- state: present
- when: ansible_facts.system in ['Linux'] and ansible_distribution != 'Alpine' and ansible_os_family != 'Suse'
- tags:
- - user_test_local_mode
-
-- name: Ensure lgroupadd is present - Alpine
- command: apk add -U libuser
- when: ansible_distribution == 'Alpine'
- tags:
- - user_test_local_mode
-
-# https://github.com/ansible/ansible/issues/56481
-- block:
- - name: Test duplicate GID with local=yes
- group:
- name: "{{ item }}"
- gid: 1337
- local: yes
- loop:
- - group1_local_test
- - group2_local_test
- ignore_errors: yes
- register: local_duplicate_gid_result
-
- - assert:
- that:
- - local_duplicate_gid_result['results'][0] is success
- - local_duplicate_gid_result['results'][1]['msg'] == "GID '1337' already exists with group 'group1_local_test'"
- always:
- - name: Cleanup
+ - name: get result of create a group with a gid (check mode)
+ script: 'grouplist.sh "{{ ansible_distribution }}"'
+ register: create_group_gid_actual_check
+
+ - name: assert create group with a gid (check mode)
+ assert:
+ that:
+ - create_group_gid_check is changed
+ - '"ansibullgroup2" not in create_group_gid_actual_check.stdout_lines'
+
+ - name: create a group with a gid
group:
- name: group1_local_test
- state: absent
- # only applicable to Linux, limit further to CentOS where 'luseradd' is installed
- when: ansible_distribution == 'CentOS'
+ name: ansibullgroup2
+ gid: '{{ gid.stdout_lines[0] }}'
+ state: present
+ register: create_group_gid
-# https://github.com/ansible/ansible/pull/59769
-- block:
- - name: create a local group with a gid
- group:
- name: group1_local_test
- gid: 1337
- local: yes
- state: present
- register: create_local_group_gid
-
- - name: get gid of created local group
- command: "{{ ansible_python_interpreter | quote }} -c \"import grp; print(grp.getgrnam('group1_local_test').gr_gid)\""
- register: create_local_group_gid_actual
-
- - name: assert create local group with a gid
- assert:
+ - name: get gid of created group
+ script: "get_gid_for_group.py ansibullgroup2"
+ args:
+ executable: '{{ ansible_python_interpreter }}'
+ register: create_group_gid_actual
+
+ - name: assert create group with a gid
+ assert:
that:
- - create_local_group_gid is changed
- - create_local_group_gid.gid | int == 1337 | int
- - create_local_group_gid_actual.stdout | trim | int == 1337 | int
-
- - name: create a local group with a gid (idempotent)
- group:
- name: group1_local_test
- gid: 1337
- state: present
- register: create_local_group_gid_again
-
- - name: assert create local group with a gid (idempotent)
- assert:
+ - create_group_gid is changed
+ - create_group_gid.gid | int == gid.stdout_lines[0] | int
+ - create_group_gid_actual.stdout | trim | int == gid.stdout_lines[0] | int
+
+ - name: create a group with a gid (idempotent)
+ group:
+ name: ansibullgroup2
+ gid: '{{ gid.stdout_lines[0] }}'
+ state: present
+ register: create_group_gid_again
+
+ - name: assert create group with a gid (idempotent)
+ assert:
that:
- - not create_local_group_gid_again is changed
- - create_local_group_gid_again.gid | int == 1337 | int
- always:
- - name: Cleanup create local group with a gid
+ - not create_group_gid_again is changed
+ - create_group_gid_again.gid | int == gid.stdout_lines[0] | int
+
+ - block:
+ - name: create a group with a non-unique gid
+ group:
+ name: ansibullgroup3
+ gid: '{{ gid.stdout_lines[0] }}'
+ non_unique: true
+ state: present
+ register: create_group_gid_non_unique
+
+ - name: validate gid required with non_unique
+ group:
+ name: foo
+ non_unique: true
+ register: missing_gid
+ ignore_errors: true
+
+ - name: assert create group with a non unique gid
+ assert:
+ that:
+ - create_group_gid_non_unique is changed
+ - create_group_gid_non_unique.gid | int == gid.stdout_lines[0] | int
+ - missing_gid is failed
+ when: ansible_facts.distribution not in ['MacOSX', 'Alpine']
+
+ ##
+ ## group remove
+ ##
+
+ - name: delete group (check mode)
group:
- name: group1_local_test
+ name: ansibullgroup
state: absent
- # only applicable to Linux, limit further to CentOS where 'luseradd' is installed
- when: ansible_distribution == 'CentOS'
+ register: delete_group_check
+ check_mode: true
-# https://github.com/ansible/ansible/pull/59772
-- block:
- - name: create group with a gid
- group:
- name: group1_test
- gid: 1337
- local: no
- state: present
- register: create_group_gid
-
- - name: get gid of created group
- command: "{{ ansible_python_interpreter | quote }} -c \"import grp; print(grp.getgrnam('group1_test').gr_gid)\""
- register: create_group_gid_actual
-
- - name: assert create group with a gid
- assert:
- that:
- - create_group_gid is changed
- - create_group_gid.gid | int == 1337 | int
- - create_group_gid_actual.stdout | trim | int == 1337 | int
-
- - name: create local group with the same gid
- group:
- name: group1_test
- gid: 1337
- local: yes
- state: present
- register: create_local_group_gid
-
- - name: assert create local group with a gid
- assert:
+ - name: get result of delete group (check mode)
+ script: 'grouplist.sh "{{ ansible_distribution }}"'
+ register: delete_group_actual_check
+
+ - name: assert delete group (check mode)
+ assert:
that:
- - create_local_group_gid.gid | int == 1337 | int
- always:
- - name: Cleanup create group with a gid
+ - delete_group_check is changed
+ - '"ansibullgroup" in delete_group_actual_check.stdout_lines'
+
+ - name: delete group
group:
- name: group1_test
- local: no
+ name: ansibullgroup
state: absent
- - name: Cleanup create local group with the same gid
+ register: delete_group
+
+ - name: get result of delete group
+ script: 'grouplist.sh "{{ ansible_distribution }}"'
+ register: delete_group_actual
+
+ - name: assert delete group
+ assert:
+ that:
+ - delete_group is changed
+ - '"ansibullgroup" not in delete_group_actual.stdout_lines'
+
+ - name: delete group (idempotent)
group:
- name: group1_test
- local: yes
+ name: ansibullgroup
state: absent
- # only applicable to Linux, limit further to CentOS where 'lgroupadd' is installed
- when: ansible_distribution == 'CentOS'
+ register: delete_group_again
-# create system group
+ - name: assert delete group (idempotent)
+ assert:
+ that:
+ - not delete_group_again is changed
-- name: remove group
- group:
- name: ansibullgroup
- state: absent
+ - name: Ensure lgroupadd is present
+ action: "{{ ansible_facts.pkg_mgr }}"
+ args:
+ name: libuser
+ state: present
+ when: ansible_facts.system in ['Linux'] and ansible_distribution != 'Alpine' and ansible_os_family != 'Suse'
+ tags:
+ - user_test_local_mode
+
+ - name: Ensure lgroupadd is present - Alpine
+ command: apk add -U libuser
+ when: ansible_distribution == 'Alpine'
+ tags:
+ - user_test_local_mode
+
+ # https://github.com/ansible/ansible/issues/56481
+ - block:
+ - name: Test duplicate GID with local=yes
+ group:
+ name: "{{ item }}"
+ gid: 1337
+ local: true
+ loop:
+ - group1_local_test
+ - group2_local_test
+ ignore_errors: true
+ register: local_duplicate_gid_result
+
+ - assert:
+ that:
+ - local_duplicate_gid_result['results'][0] is success
+ - local_duplicate_gid_result['results'][1]['msg'] == "GID '1337' already exists with group 'group1_local_test'"
+ always:
+ - name: Cleanup
+ group:
+ name: group1_local_test
+ state: absent
+ # only applicable to Linux, limit further to CentOS where 'luseradd' is installed
+ when: ansible_distribution == 'CentOS'
+
+ # https://github.com/ansible/ansible/pull/59769
+ - block:
+ - name: create a local group with a gid
+ group:
+ name: group1_local_test
+ gid: 1337
+ local: true
+ state: present
+ register: create_local_group_gid
+
+ - name: get gid of created local group
+ script: "get_gid_for_group.py group1_local_test"
+ args:
+ executable: '{{ ansible_python_interpreter }}'
+ register: create_local_group_gid_actual
+
+ - name: assert create local group with a gid
+ assert:
+ that:
+ - create_local_group_gid is changed
+ - create_local_group_gid.gid | int == 1337 | int
+ - create_local_group_gid_actual.stdout | trim | int == 1337 | int
+
+ - name: create a local group with a gid (idempotent)
+ group:
+ name: group1_local_test
+ gid: 1337
+ state: present
+ register: create_local_group_gid_again
+
+ - name: assert create local group with a gid (idempotent)
+ assert:
+ that:
+ - not create_local_group_gid_again is changed
+ - create_local_group_gid_again.gid | int == 1337 | int
+ always:
+ - name: Cleanup create local group with a gid
+ group:
+ name: group1_local_test
+ state: absent
+ # only applicable to Linux, limit further to CentOS where 'luseradd' is installed
+ when: ansible_distribution == 'CentOS'
+
+ # https://github.com/ansible/ansible/pull/59772
+ - block:
+ - name: create group with a gid
+ group:
+ name: group1_test
+ gid: 1337
+ local: false
+ state: present
+ register: create_group_gid
+
+ - name: get gid of created group
+ script: "get_gid_for_group.py group1_test"
+ args:
+ executable: '{{ ansible_python_interpreter }}'
+ register: create_group_gid_actual
+
+ - name: assert create group with a gid
+ assert:
+ that:
+ - create_group_gid is changed
+ - create_group_gid.gid | int == 1337 | int
+ - create_group_gid_actual.stdout | trim | int == 1337 | int
+
+ - name: create local group with the same gid
+ group:
+ name: group1_test
+ gid: 1337
+ local: true
+ state: present
+ register: create_local_group_gid
+
+ - name: assert create local group with a gid
+ assert:
+ that:
+ - create_local_group_gid.gid | int == 1337 | int
+ always:
+ - name: Cleanup create group with a gid
+ group:
+ name: group1_test
+ local: false
+ state: absent
+ - name: Cleanup create local group with the same gid
+ group:
+ name: group1_test
+ local: true
+ state: absent
+ # only applicable to Linux, limit further to CentOS where 'lgroupadd' is installed
+ when: ansible_distribution == 'CentOS'
+
+ # create system group
+
+ - name: remove group
+ group:
+ name: ansibullgroup
+ state: absent
-- name: create system group
- group:
- name: ansibullgroup
- state: present
- system: yes
+ - name: create system group
+ group:
+ name: ansibullgroup
+ state: present
+ system: true
+
+ always:
+ - name: remove test groups after test
+ group:
+ name: '{{ item }}'
+ state: absent
+ loop:
+ - ansibullgroup
+ - ansibullgroup2
+ - ansibullgroup3