mirror of https://github.com/ansible/ansible.git
Fix the parsing integration tests (#80454)
Most of the bad_parsing tests were no longer running, with several of them no longer being valid. The invalid tests have been removed and the valid ones rewritten.pull/80458/head
parent
bf4e0166a5
commit
babdec80cc
@ -1,12 +0,0 @@
|
|||||||
- hosts: testhost
|
|
||||||
|
|
||||||
# the following commands should all parse fine and execute fine
|
|
||||||
# and represent quoting scenarios that should be legit
|
|
||||||
|
|
||||||
gather_facts: False
|
|
||||||
|
|
||||||
roles:
|
|
||||||
|
|
||||||
# this one has a lot of things that should fail, see makefile for operation w/ tags
|
|
||||||
|
|
||||||
- { role: test_bad_parsing }
|
|
@ -0,0 +1,35 @@
|
|||||||
|
- hosts: testhost
|
||||||
|
gather_facts: no
|
||||||
|
tasks:
|
||||||
|
- name: test that a variable cannot inject raw arguments
|
||||||
|
shell: echo hi {{ chdir }}
|
||||||
|
vars:
|
||||||
|
chdir: mom chdir=/tmp
|
||||||
|
register: raw_injection
|
||||||
|
|
||||||
|
- name: test that a variable cannot inject kvp arguments as a kvp
|
||||||
|
file: path={{ test_file }} {{ test_input }}
|
||||||
|
vars:
|
||||||
|
test_file: "{{ output_dir }}/ansible_test_file"
|
||||||
|
test_input: "owner=test"
|
||||||
|
register: kvp_kvp_injection
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: test that a variable cannot inject kvp arguments as a value
|
||||||
|
file: state=absent path='{{ kvp_in_var }}'
|
||||||
|
vars:
|
||||||
|
kvp_in_var: "{{ output_dir }}' owner='test"
|
||||||
|
register: kvp_value_injection
|
||||||
|
|
||||||
|
- name: test that a missing filter fails
|
||||||
|
debug:
|
||||||
|
msg: "{{ output_dir | badfiltername }}"
|
||||||
|
register: filter_missing
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- raw_injection.stdout == 'hi mom chdir=/tmp'
|
||||||
|
- kvp_kvp_injection is failed
|
||||||
|
- kvp_value_injection.path.endswith("' owner='test")
|
||||||
|
- filter_missing is failed
|
@ -1,60 +0,0 @@
|
|||||||
# test code for the ping module
|
|
||||||
# (c) 2014, Michael DeHaan <michael@ansible.com>
|
|
||||||
|
|
||||||
# This file is part of Ansible
|
|
||||||
#
|
|
||||||
# Ansible is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# Ansible is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# the following tests all raise errors, to use them in a Makefile, we run them with different flags, as
|
|
||||||
# otherwise ansible stops at the first one and we want to ensure STOP conditions for each
|
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
test_file: "{{ output_dir }}/ansible_test_file" # FIXME, use set tempdir
|
|
||||||
test_input: "owner=test"
|
|
||||||
bad_var: "{{ output_dir }}' owner=test"
|
|
||||||
chdir: "mom chdir=/tmp"
|
|
||||||
tags: common
|
|
||||||
|
|
||||||
- file: name={{test_file}} state=touch
|
|
||||||
tags: common
|
|
||||||
|
|
||||||
- name: remove touched file
|
|
||||||
file: name={{test_file}} state=absent
|
|
||||||
tags: common
|
|
||||||
|
|
||||||
- name: include test that we cannot insert arguments
|
|
||||||
include: scenario1.yml
|
|
||||||
tags: scenario1
|
|
||||||
|
|
||||||
- name: include test that we cannot duplicate arguments
|
|
||||||
include: scenario2.yml
|
|
||||||
tags: scenario2
|
|
||||||
|
|
||||||
- name: include test that we can't do this for the shell module
|
|
||||||
include: scenario3.yml
|
|
||||||
tags: scenario3
|
|
||||||
|
|
||||||
- name: include test that we can't go all Little Bobby Droptables on a quoted var to add more
|
|
||||||
include: scenario4.yml
|
|
||||||
tags: scenario4
|
|
||||||
|
|
||||||
- name: test that a missing/malformed jinja2 filter fails
|
|
||||||
debug: msg="{{output_dir|badfiltername}}"
|
|
||||||
tags: scenario5
|
|
||||||
register: filter_fail
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- filter_fail is failed
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: test that we cannot insert arguments
|
|
||||||
file: path={{ test_file }} {{ test_input }}
|
|
||||||
failed_when: False # ignore the module, just test the parser
|
|
||||||
tags: scenario1
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: test that we cannot duplicate arguments
|
|
||||||
file: path={{ test_file }} owner=test2 {{ test_input }}
|
|
||||||
failed_when: False # ignore the module, just test the parser
|
|
||||||
tags: scenario2
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: test that we can't do this for the shell module
|
|
||||||
shell: echo hi {{ chdir }}
|
|
||||||
failed_when: False
|
|
||||||
tags: scenario3
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: test that we can't go all Little Bobby Droptables on a quoted var to add more
|
|
||||||
file: "name={{ bad_var }}"
|
|
||||||
failed_when: False
|
|
||||||
tags: scenario4
|
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
output_dir: .
|
|
Loading…
Reference in New Issue