diff --git a/.travis/config.sh b/.travis/config.sh index 879e5d2..9351040 100644 --- a/.travis/config.sh +++ b/.travis/config.sh @@ -42,7 +42,7 @@ type -f lsr_check_python_version > /dev/null 2>&1 || . ${SCRIPTDIR}/utils.sh if lsr_check_python_version python -lt 3.0 then - PYTHON2_EXCLUDES="tests/ensure_provider_tests.py,scripts/print_all_options.py" + PYTHON2_EXCLUDES="tests/ensure_provider_tests.py,scripts/print_all_options.py,tests/network/ensure_provider_tests.py" FLAKE8_DEFAULT_EXCLUDES=".svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg" RUN_PYLINT_EXCLUDE='^(\..*|ensure_provider_tests\.py|print_all_options\.py)$' RUN_FLAKE8_EXTRA_ARGS="--exclude ${FLAKE8_DEFAULT_EXCLUDES},${PYTHON2_EXCLUDES}" diff --git a/.travis/runcollection.sh b/.travis/runcollection.sh new file mode 100755 index 0000000..25e2722 --- /dev/null +++ b/.travis/runcollection.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# SPDX-License-Identifier: MIT + +set -e + +#uncomment if you use $ME - otherwise set in utils.sh +#ME=$(basename "$0") +SCRIPTDIR=$(readlink -f "$(dirname "$0")") + +. "${SCRIPTDIR}/utils.sh" +. "${SCRIPTDIR}/config.sh" + +# Collection commands that are run when `tox -e collection`: +role=$(basename "${TOPDIR}") +toxworkdir=${1:-"${TOPDIR}"/.tox} +STABLE_TAG=${2:-master} +cd "${toxworkdir}" +toxworkdir=$(pwd) +envlist=${3:-"black,flake8,yamllint,py38,shellcheck"} +automaintenancerepo=https://raw.githubusercontent.com/linux-system-roles/auto-maintenance/ + +curl -L -o lsr_role2collection.py "${automaintenancerepo}${STABLE_TAG}"/lsr_role2collection.py + +python lsr_role2collection.py --src-path "${TOPDIR}/.." --dest-path "${toxworkdir}" --role "${role}" > "${toxworkdir}"/collection.out 2>&1 + +yamllint="${toxworkdir}"/ansible_collections/fedora/system_roles/.yamllint_defaults.yml +sed -i -e 's/\( *\)\(document-start: disable\)/\1\2\n\1line-length:\n\1\1level: warning/' "${yamllint}" + +cd ansible_collections/fedora/system_roles +tox -e "${envlist}" 2>&1 | tee "${toxworkdir}"/collection.tox.out || : + +rm -rf "${toxworkdir}"/auto-maintenance "${toxworkdir}"/ansible_collections +cd "${TOPDIR}" +res=$(grep "^ERROR: .*failed" "${toxworkdir}"/collection.tox.out || :) +if [ "$res" != "" ]; then + lsr_error "${ME}: tox in the converted collection format failed." + exit 1 +fi diff --git a/library/network_connections.py b/library/network_connections.py index f48e87c..4e62bfe 100644 --- a/library/network_connections.py +++ b/library/network_connections.py @@ -14,17 +14,17 @@ import traceback # pylint: disable=import-error, no-name-in-module from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.network_lsr import ethtool -from ansible.module_utils.network_lsr import MyError +from ansible.module_utils.network_lsr import ethtool # noqa:E501 +from ansible.module_utils.network_lsr import MyError # noqa:E501 -from ansible.module_utils.network_lsr.argument_validator import ( +from ansible.module_utils.network_lsr.argument_validator import ( # noqa:E501 ArgUtil, ArgValidator_ListConnections, ValidationError, ) -from ansible.module_utils.network_lsr.utils import Util -from ansible.module_utils.network_lsr import nm_provider +from ansible.module_utils.network_lsr.utils import Util # noqa:E501 +from ansible.module_utils.network_lsr import nm_provider # noqa:E501 # pylint: enable=import-error, no-name-in-module diff --git a/module_utils/network_lsr/argument_validator.py b/module_utils/network_lsr/argument_validator.py index 77cfe20..065b697 100644 --- a/module_utils/network_lsr/argument_validator.py +++ b/module_utils/network_lsr/argument_validator.py @@ -6,8 +6,8 @@ import posixpath import socket # pylint: disable=import-error, no-name-in-module -from ansible.module_utils.network_lsr import MyError -from ansible.module_utils.network_lsr.utils import Util +from ansible.module_utils.network_lsr import MyError # noqa:E501 +from ansible.module_utils.network_lsr.utils import Util # noqa:E501 class ArgUtil: diff --git a/module_utils/network_lsr/nm_provider.py b/module_utils/network_lsr/nm_provider.py index 205dc2b..9407e24 100644 --- a/module_utils/network_lsr/nm_provider.py +++ b/module_utils/network_lsr/nm_provider.py @@ -2,7 +2,7 @@ """ Support for NetworkManager aka the NM provider """ # pylint: disable=import-error, no-name-in-module -from ansible.module_utils.network_lsr.utils import Util +from ansible.module_utils.network_lsr.utils import Util # noqa:E501 ETHTOOL_FEATURE_PREFIX = "ETHTOOL_OPTNAME_FEATURE_" diff --git a/module_utils/network_lsr/utils.py b/module_utils/network_lsr/utils.py index fe33db0..73d9528 100644 --- a/module_utils/network_lsr/utils.py +++ b/module_utils/network_lsr/utils.py @@ -7,7 +7,7 @@ import sys import uuid # pylint: disable=import-error, no-name-in-module -from ansible.module_utils.network_lsr import MyError +from ansible.module_utils.network_lsr import MyError # noqa:E501 class Util: diff --git a/tox.ini b/tox.ini index 05056bf..29b7da9 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = black, pylint, flake8, yamllint py{26,27,36,37,38}, - custom + collection, custom skipsdist = true skip_missing_interpreters = true @@ -162,6 +162,16 @@ commands = {[testenv:molecule_syntax]commands} {[testenv:molecule_test]commands} +[testenv:collection] +changedir = {toxinidir} +ansible_python_interpreter = /usr/bin/python3 +deps = + ruamel.yaml + ansible + jmespath +commands = + bash {toxinidir}/.travis/runcollection.sh {toxworkdir} master 'black,flake8,yamllint,py38' + [testenv:custom] changedir = {toxinidir} envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:custom} @@ -192,7 +202,7 @@ max-line-length = 88 python = 2.6: py26,coveralls,custom 2.7: py27,coveralls,flake8,pylint,custom - 3.6: py36,coveralls,black,yamllint,custom + 3.6: py36,coveralls,black,yamllint,custom,collection 3.7: py37,coveralls,custom 3.8: py38,coveralls,custom 3.8-dev: py38,coveralls,custom