summaryrefslogtreecommitdiff
path: root/tests/unittests/test_handler/test_handler_runcmd.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/test_handler/test_handler_runcmd.py')
-rw-r--r--tests/unittests/test_handler/test_handler_runcmd.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/tests/unittests/test_handler/test_handler_runcmd.py b/tests/unittests/test_handler/test_handler_runcmd.py
index dbbb2717..ee1981d1 100644
--- a/tests/unittests/test_handler/test_handler_runcmd.py
+++ b/tests/unittests/test_handler/test_handler_runcmd.py
@@ -1,10 +1,10 @@
# This file is part of cloud-init. See LICENSE file for license information.
-from cloudinit.config import cc_runcmd
+from cloudinit.config import cc_runcmd, schema
from cloudinit.sources import DataSourceNone
from cloudinit import (distros, helpers, cloud, util)
from cloudinit.tests.helpers import (
- FilesystemMockingTestCase, skipUnlessJsonSchema)
+ CiTestCase, FilesystemMockingTestCase, skipUnlessJsonSchema)
import logging
import os
@@ -99,4 +99,25 @@ class TestRuncmd(FilesystemMockingTestCase):
self.assertEqual(0o700, stat.S_IMODE(file_stat.st_mode))
+class TestSchema(CiTestCase):
+ """Directly test schema rather than through handle."""
+
+ def test_duplicates_are_fine_array(self):
+ """Duplicated array entries are allowed."""
+ try:
+ byebye = ["echo", "bye"]
+ schema.validate_cloudconfig_schema(
+ {'runcmd': [byebye, byebye]}, cc_runcmd.schema, strict=True)
+ except schema.SchemaValidationError as e:
+ self.fail("runcmd entries as list are allowed to be duplicates.")
+
+ def test_duplicates_are_fine_string(self):
+ """Duplicated string entries are allowed."""
+ try:
+ byebye = "echo bye"
+ schema.validate_cloudconfig_schema(
+ {'runcmd': [byebye, byebye]}, cc_runcmd.schema, strict=True)
+ except schema.SchemaValidationError as e:
+ self.fail("runcmd entries are allowed to be duplicates.")
+
# vi: ts=4 expandtab