Skip to content
Snippets Groups Projects
Commit b7e1a99b authored by Thomas Woerner's avatar Thomas Woerner
Browse files

tests/user/test_users*.yml: Use extended dynamic users.json

test_users_absent.yml was using users_absent.json. It has been adapted to
use users.json instead with an additional json_query to get only the names
from users_present.json.

create_users_json.yml has been added to create users.json if it is missing
containing 500 users. It is included by test_users_present.yml and
test_users_absent.yml.

users_present.sh has been renamed to users.sh and modified to create by
default users.json with 1000 users and additional with password and
passwordexpiration in two years.

jmespath has been added to pip install list in
tests/azure/templates/playbook_tests.yml to emable the use of json_query.

The requirement for jmespath has been added to tests/README.md.
parent 675125ed
Branches
Tags
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## Before starting ## Before starting
In order to run ansible-freeipa tests you will need to have `ansible` and `pytest` installed on your machine. We'll call this local machine `controller`. In order to run ansible-freeipa tests you will need to have `ansible`, `pytest` and `jmespath` installed on your machine. We'll call this local machine `controller`. `jmespath` is needed for the `json_query` filter.
You will also need to have a remote host with freeipa server installed and configured. We'll call this remote host `ipaserver`. You will also need to have a remote host with freeipa server installed and configured. We'll call this remote host `ipaserver`.
......
...@@ -29,6 +29,7 @@ jobs: ...@@ -29,6 +29,7 @@ jobs:
pip install \ pip install \
"molecule[docker]>=3" \ "molecule[docker]>=3" \
"ansible${{ parameters.ansible_version }}" \ "ansible${{ parameters.ansible_version }}" \
jmespath \
pytest \ pytest \
pytest-split-tests pytest-split-tests
displayName: Install dependencies displayName: Install dependencies
......
---
- name: Create users.json
hosts: localhost
tasks:
- name: Check if users.json exists
stat:
path: users.json
register: register_stat_users
- name: Create users.json
command: /bin/bash users.sh 500
when: not register_stat_users.stat.exists
--- ---
- name: Include create_users_json.yml
import_playbook: create_users_json.yml
- name: Test users absent - name: Test users absent
hosts: ipaserver hosts: ipaserver
become: true become: true
gather_facts: false gather_facts: false
tasks: tasks:
- name: Include users_absent.json - name: Include users.json
include_vars: include_vars:
file: users_absent.json file: users.json
- name: Users absent - name: Users absent len:{{ users | length }}
ipauser: ipauser:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
users: "{{ users }}" users: "{{ users | json_query('[*].{name: name}') }}"
state: absent state: absent
--- ---
- name: Include create_users_json.yml
import_playbook: create_users_json.yml
- name: Test users present - name: Test users present
hosts: ipaserver hosts: ipaserver
become: true become: true
gather_facts: false gather_facts: false
tasks: tasks:
- name: Include users_present.json - name: Include users.json
include_vars: include_vars:
file: users_present.json file: users.json
- name: Users present - name: Users present len:{{ users | length }}
ipauser: ipauser:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
users: "{{ users }}" users: "{{ users }}"
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
vars: vars:
slice_size: 500 slice_size: 500
tasks: tasks:
- name: Include users_present.json - name: Include users.json
include_vars: include_vars:
file: users_present.json file: users.json
- debug: - debug:
msg: "{{ users | length }}" msg: "{{ users | length }}"
- name: Users present - name: Users present
......
#!/bin/bash #!/bin/bash
NUM=1000 NUM=${1-1000}
FILE="users_present.json" FILE="users.json"
date=$(date --date='+2 years' "+%Y-%m-%d %H:%M:%S")
echo "{" > $FILE echo "{" > $FILE
...@@ -11,7 +12,9 @@ for i in $(seq 1 $NUM); do ...@@ -11,7 +12,9 @@ for i in $(seq 1 $NUM); do
echo " {" >> $FILE echo " {" >> $FILE
echo " \"name\": \"user$i\"," >> $FILE echo " \"name\": \"user$i\"," >> $FILE
echo " \"first\": \"First $i\"," >> $FILE echo " \"first\": \"First $i\"," >> $FILE
echo " \"last\": \"Last $i\"" >> $FILE echo " \"last\": \"Last $i\"," >> $FILE
echo " \"password\": \"user${i}PW\"," >> $FILE
echo " \"passwordexpiration\": \"$date\"" >> $FILE
if [ $i -lt $NUM ]; then if [ $i -lt $NUM ]; then
echo " }," >> $FILE echo " }," >> $FILE
else else
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment