summaryrefslogtreecommitdiff
path: root/tests/unittests/test_handler/test_handler_bootcmd.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/test_handler/test_handler_bootcmd.py')
-rw-r--r--tests/unittests/test_handler/test_handler_bootcmd.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/unittests/test_handler/test_handler_bootcmd.py b/tests/unittests/test_handler/test_handler_bootcmd.py
index 29fc25e4..c3abedde 100644
--- a/tests/unittests/test_handler/test_handler_bootcmd.py
+++ b/tests/unittests/test_handler/test_handler_bootcmd.py
@@ -1,6 +1,6 @@
# This file is part of cloud-init. See LICENSE file for license information.
-from cloudinit.config import cc_bootcmd
+from cloudinit.config import cc_bootcmd, schema
from cloudinit.sources import DataSourceNone
from cloudinit import (distros, helpers, cloud, util)
from cloudinit.tests.helpers import CiTestCase, mock, skipUnlessJsonSchema
@@ -138,4 +138,26 @@ class TestBootcmd(CiTestCase):
self.logs.getvalue())
+class TestSchema(CiTestCase):
+ """Directly test schema rather than through handle."""
+
+ def test_duplicates_are_fine_array_array(self):
+ """Duplicated array entries are allowed."""
+ try:
+ byebye = ["echo", "bye"]
+ schema.validate_cloudconfig_schema(
+ {'bootcmd': [byebye, byebye]}, cc_bootcmd.schema, strict=True)
+ except schema.SchemaValidationError as e:
+ self.fail("runcmd entries as list are allowed to be duplicates.")
+
+ def test_duplicates_are_fine_array_string(self):
+ """Duplicated array entries entries are allowed in values of array."""
+ try:
+ byebye = "echo bye"
+ schema.validate_cloudconfig_schema(
+ {'bootcmd': [byebye, byebye]}, cc_bootcmd.schema, strict=True)
+ except schema.SchemaValidationError as e:
+ self.fail("runcmd entries are allowed to be duplicates.")
+
+
# vi: ts=4 expandtab