cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #03611
[Merge] ~smoser/cloud-init:fix/tests-command-output-simple-warn into cloud-init:master
Scott Moser has proposed merging ~smoser/cloud-init:fix/tests-command-output-simple-warn into cloud-init:master.
Requested reviews:
cloud-init commiters (cloud-init-dev)
For more details, see:
https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/332587
--
Your team cloud-init commiters is requested to review the proposed merge of ~smoser/cloud-init:fix/tests-command-output-simple-warn into cloud-init:master.
diff --git a/cloudinit/config/cc_lxd.py b/cloudinit/config/cc_lxd.py
index e6262f8..09374d2 100644
--- a/cloudinit/config/cc_lxd.py
+++ b/cloudinit/config/cc_lxd.py
@@ -72,7 +72,7 @@ def handle(name, cfg, cloud, log, args):
type(init_cfg))
init_cfg = {}
- bridge_cfg = lxd_cfg.get('bridge')
+ bridge_cfg = lxd_cfg.get('bridge', {})
if not isinstance(bridge_cfg, dict):
log.warn("lxd/bridge config must be a dictionary. found a '%s'",
type(bridge_cfg))
diff --git a/tests/cloud_tests/testcases/base.py b/tests/cloud_tests/testcases/base.py
index b2b5b4b..17bbe27 100644
--- a/tests/cloud_tests/testcases/base.py
+++ b/tests/cloud_tests/testcases/base.py
@@ -74,7 +74,11 @@ class CloudTestCase(unittest.TestCase):
def test_no_warnings_in_log(self):
"""Warnings should not be found in the log."""
- self.assertNotIn("WARN", self.get_data_file('cloud-init.log'))
+ self.assertEqual(
+ [],
+ [l for l in self.get_data_file('cloud-init.log').splitlines()
+ if 'WARN' in l],
+ msg="'WARN' found inside cloud-init.log")
class PasswordListTest(CloudTestCase):
diff --git a/tests/cloud_tests/testcases/main/command_output_simple.py b/tests/cloud_tests/testcases/main/command_output_simple.py
index fe4c767..857881c 100644
--- a/tests/cloud_tests/testcases/main/command_output_simple.py
+++ b/tests/cloud_tests/testcases/main/command_output_simple.py
@@ -15,4 +15,20 @@ class TestCommandOutputSimple(base.CloudTestCase):
data.splitlines()[-1].strip())
# TODO: need to test that all stages redirected here
+ def test_no_warnings_in_log(self):
+ """Warnings should not be found in the log.
+
+ This class redirected stderr and stdout, so it expects to find
+ a warning in cloud-init.log to that effect."""
+ redirect_msg = 'Stdout, stderr changing to'
+ warnings = [
+ l for l in self.get_data_file('cloud-init.log').splitlines()
+ if 'WARN' in l]
+ self.assertEqual(
+ [], [w for w in warnings if redirect_msg not in w],
+ msg="'WARN' found inside cloud-init.log")
+ self.assertEqual(
+ 1, len(warnings),
+ msg="Did not find %s in cloud-init.log" % redirect_msg)
+
# vi: ts=4 expandtab
Follow ups