summaryrefslogtreecommitdiff
path: root/tests/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests')
-rw-r--r--tests/unittests/cmd/devel/test_init.py29
-rw-r--r--tests/unittests/config/test_schema.py3
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/unittests/cmd/devel/test_init.py b/tests/unittests/cmd/devel/test_init.py
new file mode 100644
index 00000000..503bc08f
--- /dev/null
+++ b/tests/unittests/cmd/devel/test_init.py
@@ -0,0 +1,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}"
+ )
diff --git a/tests/unittests/config/test_schema.py b/tests/unittests/config/test_schema.py
index ceb689a4..b5314b69 100644
--- a/tests/unittests/config/test_schema.py
+++ b/tests/unittests/config/test_schema.py
@@ -2060,3 +2060,6 @@ apt_reboot_if_required: Default: ``false``. Deprecated in version 22.2.\
expected_err.format(cfg_file=user_data_fn, id_path=id_path) == err
)
assert "deprec" not in caplog.text
+ assert read_cfg_paths.call_args_list == [
+ mock.call(fetch_existing_datasource="trust")
+ ]