AnsibleModule.get_file_attributes: add unit test
This commit is contained in:
parent
2a0cb20a1f
commit
b94630a081
1 changed files with 50 additions and 0 deletions
50
test/units/module_utils/basic/test_get_file_attributes.py
Normal file
50
test/units/module_utils/basic/test_get_file_attributes.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright:
|
||||
# (c) 2017, Pierre-Louis Bonicoli <pierre-louis@libregerbil.fr>
|
||||
# License: GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
# Make coding more python3-ish
|
||||
from __future__ import (absolute_import, division)
|
||||
__metaclass__ = type
|
||||
|
||||
from itertools import product
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
DATA = (
|
||||
(
|
||||
'3353595900 --------------e---- /usr/lib32',
|
||||
{'attr_flags': 'e', 'version': '3353595900', 'attributes': ['extents']}
|
||||
),
|
||||
# with e2fsprogs < 1.43, output isn't aligned
|
||||
(
|
||||
'78053594 -----------I--e---- /usr/lib',
|
||||
{'attr_flags': 'Ie', 'version': '78053594', 'attributes': ['indexed', 'extents']}
|
||||
),
|
||||
(
|
||||
'15711607 -------A------e---- /tmp/test',
|
||||
{'attr_flags': 'Ae', 'version': '15711607', 'attributes': ['noatime', 'extents']}
|
||||
),
|
||||
# with e2fsprogs >= 1.43, output is aligned
|
||||
(
|
||||
'78053594 -----------I--e---- /usr/lib',
|
||||
{'attr_flags': 'Ie', 'version': '78053594', 'attributes': ['indexed', 'extents']}
|
||||
),
|
||||
(
|
||||
'15711607 -------A------e---- /tmp/test',
|
||||
{'attr_flags': 'Ae', 'version': '15711607', 'attributes': ['noatime', 'extents']}
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('stdin, data', product(({},), DATA), indirect=['stdin'])
|
||||
def test_get_file_attributes(am, stdin, mocker, data):
|
||||
# Test #18731
|
||||
mocker.patch.object(AnsibleModule, 'get_bin_path', return_value=(0, '/usr/bin/lsattr', ''))
|
||||
mocker.patch.object(AnsibleModule, 'run_command', return_value=(0, data[0], ''))
|
||||
result = am.get_file_attributes('/path/to/file')
|
||||
for key, value in data[1].items():
|
||||
assert key in result and result[key] == value
|
Loading…
Reference in a new issue