summaryrefslogtreecommitdiff
path: root/tests/unittests/cmd/devel/test_init.py
blob: 503bc08fbcefdb289c4d6c72e9081216b301e47a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from unittest import mock

from cloudinit import stages
from cloudinit.cmd.devel import read_cfg_paths
from tests.unittests.util import TEST_INSTANCE_ID, FakeDataSource


class TestReadCfgPaths:
    def test_read_cfg_paths_fetches_cached_datasource(self, tmpdir):
        init = stages.Init()
        init._cfg = {
            "system_info": {
                "distro": "ubuntu",
                "paths": {"cloud_dir": tmpdir, "run_dir": tmpdir},
            }
        }
        with mock.patch("cloudinit.cmd.devel.Init") as m_init:
            with mock.patch.object(init, "_restore_from_cache") as restore:
                restore.return_value = FakeDataSource(paths=init.paths)
                with mock.patch(
                    "cloudinit.util.read_conf_from_cmdline", return_value={}
                ):
                    m_init.return_value = init
                    paths = read_cfg_paths()
                    assert paths.get_ipath() is None
                    paths = read_cfg_paths(fetch_existing_datasource="trust")
        assert (
            paths.get_ipath() == f"/var/lib/cloud/instances/{TEST_INSTANCE_ID}"
        )