diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..de3f186 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,120 @@ +--- +# Copyright 2016, @WalmartLabs +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Test filters + hosts: localhost + connection: local + gather_facts: no + tasks: + - name: Validate bit_length_power_of_2 filter + assert: + that: + - "{{ 1024 | bit_length_power_of_2 }} == 1024" + - "{{ 9600 | bit_length_power_of_2 }} == 16384" + + - name: Set net filter facts + set_fact: + url_netloc: "{{ 'http://review.openstack.org:29418/something' | netloc }}" + url_netloc_no_port: "{{ 'http://review.openstack.org:29418/something' | netloc_no_port }}" + url_netorigin: "{{ 'http://review.openstack.org:29418/something' | netorigin }}" + - name: Validate net filters + assert: + that: + - "url_netloc == 'review.openstack.org:29418'" + - "url_netloc_no_port == 'review.openstack.org'" + - "url_netorigin == 'http://review.openstack.org:29418'" + + - name: Validate string_2_int filter + assert: + that: + - "{{ 'test' | string_2_int }} == 3752" + + - name: Set pip package list facts + set_fact: + pip_package_list_1: + - pip==8.1.2 + - setuptools==25.1.0 + - wheel==0.29.0 + pip_package_list_1_names: + - pip + - setuptools + - wheel + pip_package_list_2: + - babel==2.3.4 + - pip==8.1.0 + pip_package_list_merged: + - babel==2.3.4 + - pip==8.1.0 + - setuptools==25.1.0 + - wheel==0.29.0 + - name: Set pip package filter facts + set_fact: + pip_package_list_1_names_filtered: "{{ pip_package_list_1 | pip_requirement_names }}" + pip_package_list_constraint_filtered: "{{ pip_package_list_1 | pip_constraint_update(pip_package_list_2) }}" + - name: Validate pip requirement filters + assert: + that: + - "pip_package_list_1_names_filtered == pip_package_list_1_names" + - "pip_package_list_constraint_filtered == pip_package_list_merged" + + - name: Set splitlines string facts + set_fact: + string_with_lines: | + this + is + a + test + string_split_lines: + - this + - is + - a + - test + - name: Set splitlines filter fact + set_fact: + string_split_lines_filtered: "{{ string_with_lines | splitlines }}" + - name: Validate splitlines filter + assert: + that: "string_split_lines_filtered == string_split_lines" + + - name: Set git repo facts + set_fact: + git_repo: "git+https://git.openstack.org/openstack/nova@2bc8128d7793cc72ca2e146de3a092e1fef5033b#egg=nova&gitname=nova" + git_repo_name: nova + git_repo_link_parts: + name: nova + version: 2bc8128d7793cc72ca2e146de3a092e1fef5033b + plugin_path: null + url: "https://git.openstack.org/openstack/nova" + original: "git+https://git.openstack.org/openstack/nova@2bc8128d7793cc72ca2e146de3a092e1fef5033b#egg=nova&gitname=nova" + - name: Set git link parse filter facts + set_fact: + git_repo_link_parse_filtered: "{{ git_repo | git_link_parse }}" + git_repo_link_parse_name_filtered: "{{ git_repo | git_link_parse_name }}" + - name: Validate git link parse filters + assert: + that: + - "git_repo_link_parse_filtered == git_repo_link_parts" + - "git_repo_link_parse_name_filtered == git_repo_name" + + - name: Set deprecation variable facts + set_fact: + new_var: new + old_var: old + - name: Set deprecated filter fact + set_fact: + deprecated_value: "{{ new_var | deprecated(old_var, 'old_var', 'new_var', 'Next Release', false) }}" + - name: Validate deprecated filter + assert: + that: "deprecated_value == old_var" diff --git a/tox.ini b/tox.ini index 1729493..53cfb82 100644 --- a/tox.ini +++ b/tox.ini @@ -64,11 +64,29 @@ commands = --exclude-dir .git \ {toxinidir} | xargs bashate --error . --verbose --ignore=E003,E006,E040" +[testenv:ansible] +deps = + {[testenv]deps} + ansible==1.9.4 +setenv = + {[testenv]setenv} + ANSIBLE_ACTION_PLUGINS = {toxinidir}/action + ANSIBLE_CALLBACK_PLUGINS = {toxinidir}/callback + ANSIBLE_FILTER_PLUGINS = {toxinidir}/filter + ANSIBLE_LOOKUP_PLUGINS = {toxinidir}/lookup + ANSIBLE_LIBRARY = {toxinidir}/library +commands = + ansible-playbook {toxinidir}/tests/test.yml -i 'localhost,' -vvvv [testenv:linters] +deps = + {[testenv:ansible]deps} +setenv = + {[testenv:ansible]setenv} commands = {[testenv:pep8]commands} {[testenv:bashate]commands} + {[testenv:ansible]commands} [testenv:releasenotes] commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html