salt/tests/pytests/unit/states/file/test_pruned.py
Nicholas Hughes a210dbc25f
Add file pruned state (#62179)
* add file.rmdir tests for original function

* update file.rmdir exec module for recursive operation and verbose output

* fixes saltstack/salt#62178 add file.rmdir state

* add older_than capability to file.rmdir exec and state modules

* change test to use direct import of file module

* Revert "change test to use direct import of file module"

This reverts commit ff8c666e3b.

* revert previous test modification and add import to win_file

* rename file.rmdir state to file.pruned
2022-08-03 07:16:22 -06:00

60 lines
1.7 KiB
Python

import logging
import os
import pytest
import salt.states.file as filestate
import salt.utils.platform
from tests.support.mock import MagicMock, patch
log = logging.getLogger(__name__)
@pytest.fixture
def configure_loader_modules():
return {filestate: {"__salt__": {}, "__opts__": {}}}
@pytest.fixture
def directory_name():
name = os.sep + "test"
if salt.utils.platform.is_windows():
name = "c:" + name
return name
def test_pruned_clean(directory_name):
with patch("os.path.isdir", return_value=False):
ret = filestate.pruned(name=directory_name)
assert ret == {
"changes": {},
"comment": "Directory {} is not present".format(directory_name),
"name": directory_name,
"result": True,
}
def test_pruned_test(directory_name):
with patch("os.path.isdir", return_value=True), patch.dict(
filestate.__opts__, {"test": True}
):
ret = filestate.pruned(name=directory_name)
assert ret == {
"changes": {"deleted": directory_name},
"comment": "Directory {} is set for removal".format(directory_name),
"name": directory_name,
"result": None,
}
def test_pruned_success(directory_name):
rmdir = MagicMock(return_value={"result": True})
with patch("os.path.isdir", return_value=True), patch.dict(
filestate.__opts__, {"test": False}
), patch.dict(filestate.__salt__, {"file.rmdir": rmdir}):
ret = filestate.pruned(name=directory_name)
assert ret == {
"changes": {"deleted": directory_name},
"comment": "Removed directory {}".format(directory_name),
"name": directory_name,
"result": True,
}