summaryrefslogtreecommitdiff
path: root/cloudinit/config/tests/test_final_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/config/tests/test_final_message.py')
-rw-r--r--cloudinit/config/tests/test_final_message.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/cloudinit/config/tests/test_final_message.py b/cloudinit/config/tests/test_final_message.py
new file mode 100644
index 00000000..76cb0ad1
--- /dev/null
+++ b/cloudinit/config/tests/test_final_message.py
@@ -0,0 +1,33 @@
+# This file is part of cloud-init. See LICENSE file for license information.
+from unittest import mock
+
+import pytest
+
+from cloudinit.config.cc_final_message import handle
+
+
+class TestHandle:
+ # TODO: Expand these tests to cover full functionality; currently they only
+ # cover the logic around how the boot-finished file is written (and not its
+ # contents).
+
+ @pytest.mark.parametrize(
+ "instance_dir_exists,file_is_written", [(True, True), (False, False)]
+ )
+ def test_boot_finished_written(
+ self, instance_dir_exists, file_is_written, tmpdir
+ ):
+ instance_dir = tmpdir.join("var/lib/cloud/instance")
+ if instance_dir_exists:
+ instance_dir.ensure_dir()
+ boot_finished = instance_dir.join("boot-finished")
+
+ m_cloud = mock.Mock(
+ paths=mock.Mock(boot_finished=boot_finished.strpath)
+ )
+
+ handle(None, {}, m_cloud, mock.Mock(), [])
+
+ # We should not change the status of the instance directory
+ assert instance_dir_exists == instance_dir.exists()
+ assert file_is_written == boot_finished.exists()