← Back to team overview

cloud-init-dev team mailing list archive

[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