mirror of https://github.com/ceph/ceph-ansible.git
improve plugins/filter testing
- The plugins/filter directory wasn't present in the flake8 workflow configuration. - Fix the flake8 syntax. - Add the directory to PYTHONPATH environment variable for pytest to avoid importing the plugin filter via sys. - Add unittest on missing netaddr module import. Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>pull/6091/head
parent
0b05620597
commit
d76fbb38d5
|
@ -4,9 +4,11 @@ on:
|
||||||
paths:
|
paths:
|
||||||
- 'library/**.py'
|
- 'library/**.py'
|
||||||
- 'module_utils/**.py'
|
- 'module_utils/**.py'
|
||||||
|
- 'plugins/filter/**.py'
|
||||||
- 'tests/conftest.py'
|
- 'tests/conftest.py'
|
||||||
- 'tests/library/**.py'
|
- 'tests/library/**.py'
|
||||||
- 'tests/module_utils/**.py'
|
- 'tests/module_utils/**.py'
|
||||||
|
- 'tests/plugins/filter/**.py'
|
||||||
- 'tests/functional/tests/**.py'
|
- 'tests/functional/tests/**.py'
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
@ -19,4 +21,4 @@ jobs:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- run: pip install flake8
|
- run: pip install flake8
|
||||||
- run: flake8 --max-line-length 160 ./library/ ./module_utils/ ./tests/library/ ./tests/module_utils/ ./tests/conftest.py ./tests/functional/tests/
|
- run: flake8 --max-line-length 160 ./library/ ./module_utils/ ./plugins/filter/ ./tests/library/ ./tests/module_utils/ ./tests/plugins/filter/ ./tests/conftest.py ./tests/functional/tests/
|
||||||
|
|
|
@ -25,4 +25,4 @@ jobs:
|
||||||
- run: pip install -r tests/requirements.txt
|
- run: pip install -r tests/requirements.txt
|
||||||
- run: pytest --cov=library/ --cov=module_utils/ --cov=plugins/filter/ -vvvv tests/library/ tests/module_utils/ tests/plugins/filter/
|
- run: pytest --cov=library/ --cov=module_utils/ --cov=plugins/filter/ -vvvv tests/library/ tests/module_utils/ tests/plugins/filter/
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: "$PYTHONPATH:/home/runner/work/ceph-ansible/ceph-ansible/library:/home/runner/work/ceph-ansible/ceph-ansible/module_utils:/home/runner/work/ceph-ansible/ceph-ansible"
|
PYTHONPATH: "$PYTHONPATH:/home/runner/work/ceph-ansible/ceph-ansible/library:/home/runner/work/ceph-ansible/ceph-ansible/module_utils:/home/runner/work/ceph-ansible/ceph-ansible/plugins/filter:/home/runner/work/ceph-ansible/ceph-ansible"
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
from ansible import errors
|
from ansible import errors
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -1,9 +1,16 @@
|
||||||
import sys
|
from __future__ import (absolute_import, division, print_function)
|
||||||
sys.path.append('./plugins/filter')
|
__metaclass__ = type
|
||||||
|
|
||||||
|
from ansible.errors import AnsibleFilterError
|
||||||
|
|
||||||
import ipaddrs_in_ranges
|
import ipaddrs_in_ranges
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
pytest.importorskip('netaddr')
|
||||||
|
|
||||||
filter_plugin = ipaddrs_in_ranges.FilterModule()
|
filter_plugin = ipaddrs_in_ranges.FilterModule()
|
||||||
|
|
||||||
|
|
||||||
class TestIpaddrsInRanges(object):
|
class TestIpaddrsInRanges(object):
|
||||||
|
|
||||||
def test_one_ip_one_range(self):
|
def test_one_ip_one_range(self):
|
||||||
|
@ -41,5 +48,16 @@ class TestIpaddrsInRanges(object):
|
||||||
ips = ['10.10.20.1', '192.168.2.1', '172.16.10.1']
|
ips = ['10.10.20.1', '192.168.2.1', '172.16.10.1']
|
||||||
ranges = ['192.168.1.0/24', '10.10.10.1/24', '172.16.17.0/24']
|
ranges = ['192.168.1.0/24', '10.10.10.1/24', '172.16.17.0/24']
|
||||||
result = filter_plugin.ips_in_ranges(ips, ranges)
|
result = filter_plugin.ips_in_ranges(ips, ranges)
|
||||||
assert result == []
|
assert len(result) == 0
|
||||||
|
|
||||||
|
def test_ips_in_ranges_in_filters_dict(self):
|
||||||
|
assert 'ips_in_ranges' in filter_plugin.filters()
|
||||||
|
|
||||||
|
def test_missing_netaddr_module(self):
|
||||||
|
ipaddrs_in_ranges.netaddr = None
|
||||||
|
|
||||||
|
with pytest.raises(AnsibleFilterError) as result:
|
||||||
|
filter_plugin.filters()
|
||||||
|
|
||||||
|
assert result.type == AnsibleFilterError
|
||||||
|
assert str(result.value) == "The ips_in_ranges filter requires python's netaddr be installed on the ansible controller."
|
||||||
|
|
Loading…
Reference in New Issue