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:
David Newswanger 2018-02-02 16:04:19 -05:00 committed by GitHub
parent 7917e3c988
commit 69cd705634
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 99 additions and 0 deletions

View file

@ -0,0 +1,3 @@
---
testcase: "*"
test_items: []

View 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

View file

@ -0,0 +1,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View file

@ -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

View file

@ -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

View file

@ -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'