|
Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /usr/src/cloud-init/tests/unittests/ |
Upload File : |
import builtins
import glob
import os
from pathlib import Path
from unittest import mock
import pytest
from cloudinit import atomic_helper, util
from tests.unittests.helpers import retarget_many_wrapper
FS_FUNCS = {
os.path: [
("isfile", 1),
("exists", 1),
("islink", 1),
("isdir", 1),
("lexists", 1),
("relpath", 1),
],
os: [
("listdir", 1),
("mkdir", 1),
("lstat", 1),
("symlink", 2),
("stat", 1),
("scandir", 1),
],
util: [
("write_file", 1),
("append_file", 1),
("load_file", 1),
("ensure_dir", 1),
("chmod", 1),
("delete_dir_contents", 1),
("del_file", 1),
("sym_link", -1),
("copy", -1),
],
glob: [
("glob", 1),
],
builtins: [
("open", 1),
],
atomic_helper: [
("write_file", 1),
],
}
@pytest.fixture
def fake_filesystem(mocker, tmpdir):
"""Mocks fs functions to operate under `tmpdir`"""
for (mod, funcs) in FS_FUNCS.items():
for f, nargs in funcs:
func = getattr(mod, f)
trap_func = retarget_many_wrapper(str(tmpdir), nargs, func)
mocker.patch.object(mod, f, trap_func)
@pytest.fixture(autouse=True)
def disable_dns_lookup(request):
if "allow_dns_lookup" in request.keywords:
yield
return
def side_effect(args, *other_args, **kwargs):
raise AssertionError("Unexpectedly used util.is_resolvable")
with mock.patch(
"cloudinit.util.is_resolvable", side_effect=side_effect, autospec=True
):
yield
PYTEST_VERSION_TUPLE = tuple(map(int, pytest.__version__.split(".")))
if PYTEST_VERSION_TUPLE < (3, 9, 0):
@pytest.fixture
def tmp_path(tmpdir):
return Path(tmpdir)