mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
1790dbd5e1
(cherry picked from commit 68e7e52557
)
Co-authored-by: Felix Fontein <felix@fontein.de>
150 lines
4.2 KiB
YAML
150 lines
4.2 KiB
YAML
---
|
|
####################################################################
|
|
# WARNING: These are designed specifically for Ansible tests #
|
|
# and should not be used as examples of how to write Ansible roles #
|
|
####################################################################
|
|
|
|
# Copyright (c) Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# Create basic CSV file
|
|
- name: Create unique CSV file
|
|
copy:
|
|
content: |
|
|
name,uid,gid,gecos
|
|
dag,500,500,Dag Wieërs
|
|
jeroen,501,500,Jeroen Hoekx
|
|
dest: users_unique.csv
|
|
|
|
# Read a CSV file and access user 'dag'
|
|
- name: Read users from CSV file and return a dictionary
|
|
read_csv:
|
|
path: users_unique.csv
|
|
key: name
|
|
register: users_unique
|
|
|
|
- assert:
|
|
that:
|
|
- users_unique.dict.dag.name == 'dag'
|
|
- users_unique.dict.dag.gecos == 'Dag Wieërs'
|
|
- users_unique.dict.dag.uid == '500'
|
|
- users_unique.dict.dag.gid == '500'
|
|
- users_unique.dict.jeroen.name == 'jeroen'
|
|
- users_unique.dict.jeroen.gecos == 'Jeroen Hoekx'
|
|
- users_unique.dict.jeroen.uid == '501'
|
|
- users_unique.dict.jeroen.gid == '500'
|
|
|
|
# Read a CSV file and access the first item
|
|
- name: Read users from CSV file and return a list
|
|
read_csv:
|
|
path: users_unique.csv
|
|
register: users_unique
|
|
|
|
- assert:
|
|
that:
|
|
- users_unique.list.0.name == 'dag'
|
|
- users_unique.list.0.gecos == 'Dag Wieërs'
|
|
- users_unique.list.0.uid == '500'
|
|
- users_unique.list.0.gid == '500'
|
|
- users_unique.list.1.name == 'jeroen'
|
|
- users_unique.list.1.gecos == 'Jeroen Hoekx'
|
|
- users_unique.list.1.uid == '501'
|
|
- users_unique.list.1.gid == '500'
|
|
|
|
|
|
# Create basic CSV file using semi-colon
|
|
- name: Create non-unique CSV file using semi-colon
|
|
copy:
|
|
content: |
|
|
name;uid;gid;gecos
|
|
dag;500;500;Dag Wieërs
|
|
jeroen;501;500;Jeroen Hoekx
|
|
dag;502;500;Dag Wieers
|
|
dest: users_nonunique.csv
|
|
|
|
# Read a CSV file and access user 'dag'
|
|
- name: Read users from CSV file and return a dictionary
|
|
read_csv:
|
|
path: users_nonunique.csv
|
|
key: name
|
|
unique: no
|
|
delimiter: ';'
|
|
register: users_nonunique
|
|
|
|
- assert:
|
|
that:
|
|
- users_nonunique.dict.dag.name == 'dag'
|
|
- users_nonunique.dict.dag.gecos == 'Dag Wieers'
|
|
- users_nonunique.dict.dag.uid == '502'
|
|
- users_nonunique.dict.dag.gid == '500'
|
|
- users_nonunique.dict.jeroen.name == 'jeroen'
|
|
- users_nonunique.dict.jeroen.gecos == 'Jeroen Hoekx'
|
|
- users_nonunique.dict.jeroen.uid == '501'
|
|
- users_nonunique.dict.jeroen.gid == '500'
|
|
|
|
|
|
# Read a CSV file using an non-existing dialect
|
|
- name: Read users from CSV file and return a dictionary
|
|
read_csv:
|
|
path: users_nonunique.csv
|
|
dialect: placebo
|
|
register: users_placebo
|
|
ignore_errors: yes
|
|
|
|
- assert:
|
|
that:
|
|
- users_placebo is failed
|
|
- users_placebo.msg == "Dialect 'placebo' is not supported by your version of python."
|
|
|
|
|
|
# Create basic CSV file without header
|
|
- name: Create unique CSV file without header
|
|
copy:
|
|
content: |
|
|
dag,500,500,Dag Wieërs
|
|
jeroen,501,500,Jeroen Hoekx
|
|
dest: users_noheader.csv
|
|
|
|
# Read a CSV file and access user 'dag'
|
|
- name: Read users from CSV file and return a dictionary
|
|
read_csv:
|
|
path: users_noheader.csv
|
|
key: name
|
|
fieldnames: name,uid,gid,gecos
|
|
register: users_noheader
|
|
|
|
- assert:
|
|
that:
|
|
- users_noheader.dict.dag.name == 'dag'
|
|
- users_noheader.dict.dag.gecos == 'Dag Wieërs'
|
|
- users_noheader.dict.dag.uid == '500'
|
|
- users_noheader.dict.dag.gid == '500'
|
|
- users_noheader.dict.jeroen.name == 'jeroen'
|
|
- users_noheader.dict.jeroen.gecos == 'Jeroen Hoekx'
|
|
- users_noheader.dict.jeroen.uid == '501'
|
|
- users_noheader.dict.jeroen.gid == '500'
|
|
|
|
|
|
# Create broken file
|
|
- name: Create unique CSV file
|
|
copy:
|
|
content: |
|
|
name,uid,gid,gecos
|
|
dag,500,500,Dag Wieërs
|
|
jeroen,501,500,"Jeroen"Hoekx"
|
|
dest: users_broken.csv
|
|
|
|
# Read a broken CSV file using strict
|
|
- name: Read users from a broken CSV file
|
|
read_csv:
|
|
path: users_broken.csv
|
|
key: name
|
|
strict: yes
|
|
register: users_broken
|
|
ignore_errors: yes
|
|
|
|
- assert:
|
|
that:
|
|
- users_broken is failed
|
|
- "'Unable to process file' in users_broken.msg"
|