mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.8 KiB
YAML
143 lines
3.8 KiB
YAML
4 years ago
|
---
|
||
|
###################################################################
|
||
|
# 1st search_string tests
|
||
|
|
||
|
- name: deploy the test file for lineinfile string
|
||
|
copy:
|
||
|
src: teststring.txt
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: assert that the test file was deployed
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
- "result.checksum == '481c2b73fe062390afdd294063a4f8285d69ac85'"
|
||
|
- "result.state == 'file'"
|
||
|
|
||
|
- name: insert a line at the beginning of the file, and back it up
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: present
|
||
|
line: "New line at the beginning"
|
||
|
insertbefore: "BOF"
|
||
|
backup: yes
|
||
|
register: result1
|
||
|
|
||
|
- name: insert a line at the beginning of the file again
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: present
|
||
|
line: "New line at the beginning"
|
||
|
insertbefore: "BOF"
|
||
|
register: result2
|
||
|
|
||
|
- name: Replace a line using string
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: present
|
||
|
line: "Thi$ i^ [ine 3"
|
||
|
search_string: (\\w)(\\s+)([\\.,])
|
||
|
register: backrefs_result1
|
||
|
|
||
|
- name: Replace a line again using string
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: present
|
||
|
line: "Thi$ i^ [ine 3"
|
||
|
search_string: (\\w)(\\s+)([\\.,])
|
||
|
register: backrefs_result2
|
||
|
|
||
|
- command: cat {{ output_dir }}/teststring.txt
|
||
|
|
||
|
- name: assert that the line with backrefs was changed
|
||
|
assert:
|
||
|
that:
|
||
|
- backrefs_result1 is changed
|
||
|
- backrefs_result2 is not changed
|
||
|
- "backrefs_result1.msg == 'line replaced'"
|
||
|
|
||
|
- name: stat the test after the backref line was replaced
|
||
|
stat:
|
||
|
path: "{{ output_dir }}/teststring.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: assert test checksum matches after backref line was replaced
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.stat.checksum == '8084519b53e268920a46592a112297715951f167'"
|
||
|
|
||
|
- name: remove the middle line using string
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: absent
|
||
|
search_string: "Thi$ i^ [ine 3"
|
||
|
register: result
|
||
|
|
||
|
- name: assert that the line was removed
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
- "result.msg == '1 line(s) removed'"
|
||
|
|
||
|
- name: stat the test after the middle line was removed
|
||
|
stat:
|
||
|
path: "{{ output_dir }}/teststring.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: assert test checksum matches after the middle line was removed
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.stat.checksum == '89919ef2ef91e48ad02e0ca2bcb76dfc2a86d516'"
|
||
|
|
||
|
- name: run a validation script that succeeds using string
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: absent
|
||
|
search_string: <FilesMatch ".py[45]?$">
|
||
|
validate: "true %s"
|
||
|
register: result
|
||
|
|
||
|
- name: assert that the file validated after removing a line
|
||
|
assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
- "result.msg == '1 line(s) removed'"
|
||
|
|
||
|
- name: stat the test after the validation succeeded
|
||
|
stat:
|
||
|
path: "{{ output_dir }}/teststring.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: assert test checksum matches after the validation succeeded
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.stat.checksum == 'ba9600b34febbc88bfb3ca99cd6b57f1010c19a4'"
|
||
|
|
||
|
- name: run a validation script that fails using string
|
||
|
lineinfile:
|
||
|
dest: "{{ output_dir }}/teststring.txt"
|
||
|
state: absent
|
||
|
search_string: "This is line 1"
|
||
|
validate: "/bin/false %s"
|
||
|
register: result
|
||
|
ignore_errors: yes
|
||
|
|
||
|
- name: assert that the validate failed
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.failed == true"
|
||
|
|
||
|
- name: stat the test after the validation failed
|
||
|
stat:
|
||
|
path: "{{ output_dir }}/teststring.txt"
|
||
|
register: result
|
||
|
|
||
|
- name: assert test checksum matches the previous after the validation failed
|
||
|
assert:
|
||
|
that:
|
||
|
- "result.stat.checksum == 'ba9600b34febbc88bfb3ca99cd6b57f1010c19a4'"
|
||
|
|
||
|
# End of string tests
|
||
|
###################################################################
|