diff options
Diffstat (limited to 'tests/unittests/config/test_cc_disk_setup.py')
-rw-r--r-- | tests/unittests/config/test_cc_disk_setup.py | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/tests/unittests/config/test_cc_disk_setup.py b/tests/unittests/config/test_cc_disk_setup.py index 9c02a651..496ad8e1 100644 --- a/tests/unittests/config/test_cc_disk_setup.py +++ b/tests/unittests/config/test_cc_disk_setup.py @@ -1,6 +1,7 @@ # This file is part of cloud-init. See LICENSE file for license information. import random +import tempfile import pytest @@ -102,7 +103,7 @@ class TestGetMbrHddSize(TestCase): class TestGetPartitionMbrLayout(TestCase): def test_single_partition_using_boolean(self): self.assertEqual( - "0,", cc_disk_setup.get_partition_mbr_layout(1000, True) + ",,83", cc_disk_setup.get_partition_mbr_layout(1000, True) ) def test_single_partition_using_list(self): @@ -200,6 +201,23 @@ class TestUpdateFsSetupDevices(TestCase): ) +class TestPurgeDisk(TestCase): + @mock.patch( + "cloudinit.config.cc_disk_setup.read_parttbl", return_value=None + ) + def test_purge_disk_ptable(self, *args): + pseudo_device = tempfile.NamedTemporaryFile() + + cc_disk_setup.purge_disk_ptable(pseudo_device.name) + + with pseudo_device as f: + actual = f.read() + + expected = b"\0" * (1024 * 1024) + + self.assertEqual(expected, actual) + + @mock.patch( "cloudinit.config.cc_disk_setup.assert_and_settle_device", return_value=None, @@ -211,7 +229,6 @@ class TestUpdateFsSetupDevices(TestCase): @mock.patch("cloudinit.config.cc_disk_setup.device_type", return_value=None) @mock.patch("cloudinit.config.cc_disk_setup.subp.subp", return_value=("", "")) class TestMkfsCommandHandling(CiTestCase): - with_logs = True def test_with_cmd(self, subp, *args): @@ -321,5 +338,25 @@ class TestDebugSchema: with pytest.raises(SchemaValidationError, match=error_msg): validate_cloudconfig_schema(config, schema, strict=True) - -# vi: ts=4 expandtab + @pytest.mark.parametrize( + "config", + ( + ( + { + "disk_setup": { + "/dev/disk/by-id/google-home": { + "table_type": "gpt", + "layout": [ + [100, "933AC7E1-2EB4-4F13-B844-0E14E2AEF915"] + ], + } + } + } + ), + ), + ) + @skipUnlessJsonSchema() + def test_valid_schema(self, config): + """Assert expected schema validation and no error messages.""" + schema = get_schema() + validate_cloudconfig_schema(config, schema, strict=True) |