Add vyos smoke integration tests. (#35456)
* added preliminary vyos smoke tests * added comments, determined current tests are sufficient * add tests for check mode in module_utils.network.vyos * removed vyos_smoke from shippable * added comment explaining why AWS/Shippable tests won't work
This commit is contained in:
parent
7917e3c988
commit
69cd705634
6 changed files with 99 additions and 0 deletions
3
test/integration/targets/vyos_smoke/defaults/main.yaml
Normal file
3
test/integration/targets/vyos_smoke/defaults/main.yaml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
testcase: "*"
|
||||
test_items: []
|
22
test/integration/targets/vyos_smoke/tasks/cli.yaml
Normal file
22
test/integration/targets/vyos_smoke/tasks/cli.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
- name: collect all cli test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli"
|
||||
patterns: "{{ testcase }}.yaml"
|
||||
register: test_cases
|
||||
delegate_to: localhost
|
||||
|
||||
- name: set test_items
|
||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||
|
||||
- name: run test case (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
||||
|
||||
- name: run test case (connection=local)
|
||||
include: "{{ test_case_to_run }} ansible_connection=local"
|
||||
with_first_found: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
2
test/integration/targets/vyos_smoke/tasks/main.yaml
Normal file
2
test/integration/targets/vyos_smoke/tasks/main.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
|
@ -0,0 +1,10 @@
|
|||
# vyos.py in plugins and module_utils/network covered by these as well
|
||||
# hit NetworkConfig
|
||||
- name: configure simple config command
|
||||
vyos_config:
|
||||
lines: set system host-name smoke
|
||||
|
||||
- name: return host name to inventory_hostname
|
||||
vyos_config:
|
||||
lines: set system host-name {{ inventory_hostname_short }}
|
||||
match: none
|
|
@ -0,0 +1,49 @@
|
|||
# vyos.py in plugins and module_utils/network covered by these as well
|
||||
# remove_default_spec() hit by multiple plays
|
||||
|
||||
# hit ComplexList
|
||||
- name: get output for single command
|
||||
vyos_command:
|
||||
commands:
|
||||
- show version
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.changed == false
|
||||
- result.stdout is defined
|
||||
- result.stdout_lines is defined
|
||||
|
||||
# hit conditional() - used for declarative intent
|
||||
# Note, this can't be run on AWS because fully testing the vyos_interface dependencies
|
||||
# requires the ability to create and remove interfaces other than eth0
|
||||
- name: enable eth1
|
||||
vyos_interface:
|
||||
name: eth1
|
||||
enabled: True
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: Check intent arguments
|
||||
vyos_interface:
|
||||
name: eth1
|
||||
state: up
|
||||
register: result
|
||||
|
||||
- name: Check intent arguments (failed condition)
|
||||
vyos_interface:
|
||||
name: eth1
|
||||
state: down
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(down)' in result.failed_conditions"
|
||||
|
||||
- name: Config + intent
|
||||
vyos_interface:
|
||||
name: eth1
|
||||
enabled: False
|
||||
state: down
|
|
@ -0,0 +1,13 @@
|
|||
# hit check conditional in module_utils.network.vyos -> load_config()
|
||||
- name: configure simple config command
|
||||
vyos_config:
|
||||
lines: set system host-name check-test
|
||||
check_mode: yes
|
||||
|
||||
- name: get host name
|
||||
vyos_command:
|
||||
commands: show host name
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that: '"check-test" not in result.stdout'
|
Loading…
Reference in a new issue