diff options
Diffstat (limited to 'tests/unittests/config/test_cc_debug.py')
-rw-r--r-- | tests/unittests/config/test_cc_debug.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/tests/unittests/config/test_cc_debug.py b/tests/unittests/config/test_cc_debug.py deleted file mode 100644 index fc8d43dc..00000000 --- a/tests/unittests/config/test_cc_debug.py +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright (C) 2014 Yahoo! Inc. -# -# This file is part of cloud-init. See LICENSE file for license information. -import logging -import re -import shutil -import tempfile - -import pytest - -from cloudinit import util -from cloudinit.config import cc_debug -from cloudinit.config.schema import ( - SchemaValidationError, - get_schema, - validate_cloudconfig_schema, -) -from tests.unittests.helpers import ( - FilesystemMockingTestCase, - mock, - skipUnlessJsonSchema, -) -from tests.unittests.util import get_cloud - -LOG = logging.getLogger(__name__) - - -@mock.patch("cloudinit.distros.debian.read_system_locale") -class TestDebug(FilesystemMockingTestCase): - def setUp(self): - super(TestDebug, self).setUp() - self.new_root = tempfile.mkdtemp() - self.addCleanup(shutil.rmtree, self.new_root) - self.patchUtils(self.new_root) - - def test_debug_write(self, m_locale): - m_locale.return_value = "en_US.UTF-8" - cfg = { - "abc": "123", - "c": "\u20a0", - "debug": { - "verbose": True, - # Does not actually write here due to mocking... - "output": "/var/log/cloud-init-debug.log", - }, - } - cc = get_cloud() - cc_debug.handle("cc_debug", cfg, cc, LOG, []) - contents = util.load_file("/var/log/cloud-init-debug.log") - # Some basic sanity tests... - self.assertNotEqual(0, len(contents)) - for k in cfg.keys(): - self.assertIn(k, contents) - - def test_debug_no_write(self, m_locale): - m_locale.return_value = "en_US.UTF-8" - cfg = { - "abc": "123", - "debug": { - "verbose": False, - # Does not actually write here due to mocking... - "output": "/var/log/cloud-init-debug.log", - }, - } - cc = get_cloud() - cc_debug.handle("cc_debug", cfg, cc, LOG, []) - self.assertRaises( - IOError, util.load_file, "/var/log/cloud-init-debug.log" - ) - - -@skipUnlessJsonSchema() -class TestDebugSchema: - """Directly test schema rather than through handle.""" - - @pytest.mark.parametrize( - "config, error_msg", - ( - # Valid schemas tested by meta.examples in test_schema - # Invalid schemas - ({"debug": 1}, "debug: 1 is not of type 'object'"), - ( - {"debug": {}}, - re.escape("debug: {} does not have enough properties"), - ), - ( - {"debug": {"boguskey": True}}, - re.escape( - "Additional properties are not allowed ('boguskey' was" - " unexpected)" - ), - ), - ( - {"debug": {"verbose": 1}}, - "debug.verbose: 1 is not of type 'boolean'", - ), - ( - {"debug": {"output": 1}}, - "debug.output: 1 is not of type 'string'", - ), - ), - ) - @skipUnlessJsonSchema() - def test_schema_validation(self, config, error_msg): - """Assert expected schema validation and error messages.""" - # New-style schema $defs exist in config/cloud-init-schema*.json - schema = get_schema() - with pytest.raises(SchemaValidationError, match=error_msg): - validate_cloudconfig_schema(config, schema, strict=True) - - -# vi: ts=4 expandtab |