summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2018-02-12 13:54:50 -0700
committerChad Smith <chad.smith@canonical.com>2018-02-12 13:54:50 -0700
commit754f54037aca0f604b8b57ab71b30dad5e5066cf (patch)
tree0c849988ab451b74088713daa53b7a73190426b1 /cloudinit
parenta1ca220d137cf7b3f79b516980a042ec800a8d91 (diff)
downloadvyos-cloud-init-754f54037aca0f604b8b57ab71b30dad5e5066cf.tar.gz
vyos-cloud-init-754f54037aca0f604b8b57ab71b30dad5e5066cf.zip
tests: run nosetests in cloudinit/ directory, fix py26 fallout.
When we moved some tests to live under cloudinit/ we inadvertantly failed to change all things that would run nose to include that directory. This changes all the 'nose' invocations to consistently run with tests/unittests and cloudinit/. Also, it works around, more correctly this time, a python2.6-ism with the following code: with assertRaises(SystemExit) as cm: sys.exit(2)
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/cmd/tests/test_clean.py3
-rw-r--r--cloudinit/cmd/tests/test_status.py3
-rw-r--r--cloudinit/tests/helpers.py20
3 files changed, 13 insertions, 13 deletions
diff --git a/cloudinit/cmd/tests/test_clean.py b/cloudinit/cmd/tests/test_clean.py
index 6713af4f..5a3ec3bf 100644
--- a/cloudinit/cmd/tests/test_clean.py
+++ b/cloudinit/cmd/tests/test_clean.py
@@ -165,10 +165,11 @@ class TestClean(CiTestCase):
wrap_and_call(
'cloudinit.cmd.clean',
{'Init': {'side_effect': self.init_class},
+ 'sys.exit': {'side_effect': self.sys_exit},
'sys.argv': {'new': ['clean', '--logs']}},
clean.main)
- self.assertRaisesCodeEqual(0, context_manager.exception.code)
+ self.assertEqual(0, context_manager.exception.code)
self.assertFalse(
os.path.exists(self.log1), 'Unexpected log {0}'.format(self.log1))
diff --git a/cloudinit/cmd/tests/test_status.py b/cloudinit/cmd/tests/test_status.py
index 4a5a8c06..37a89936 100644
--- a/cloudinit/cmd/tests/test_status.py
+++ b/cloudinit/cmd/tests/test_status.py
@@ -380,10 +380,11 @@ class TestStatus(CiTestCase):
wrap_and_call(
'cloudinit.cmd.status',
{'sys.argv': {'new': ['status']},
+ 'sys.exit': {'side_effect': self.sys_exit},
'_is_cloudinit_disabled': (False, ''),
'Init': {'side_effect': self.init_class}},
status.main)
- self.assertRaisesCodeEqual(0, context_manager.exception.code)
+ self.assertEqual(0, context_manager.exception.code)
self.assertEqual('status: running\n', m_stdout.getvalue())
# vi: ts=4 expandtab syntax=python
diff --git a/cloudinit/tests/helpers.py b/cloudinit/tests/helpers.py
index 0080c729..41d9a8ee 100644
--- a/cloudinit/tests/helpers.py
+++ b/cloudinit/tests/helpers.py
@@ -173,17 +173,15 @@ class CiTestCase(TestCase):
dir = self.tmp_dir()
return os.path.normpath(os.path.abspath(os.path.join(dir, path)))
- def assertRaisesCodeEqual(self, expected, found):
- """Handle centos6 having different context manager for assertRaises.
- with assertRaises(Exception) as e:
- raise Exception("BOO")
-
- centos6 will have e.exception as an integer.
- anything nwere will have it as something with a '.code'"""
- if isinstance(found, int):
- self.assertEqual(expected, found)
- else:
- self.assertEqual(expected, found.code)
+ def sys_exit(self, code):
+ """Provide a wrapper around sys.exit for python 2.6
+
+ In 2.6, this code would produce 'cm.exception' with value int(2)
+ rather than the SystemExit that was raised by sys.exit(2).
+ with assertRaises(SystemExit) as cm:
+ sys.exit(2)
+ """
+ raise SystemExit(code)
class ResourceUsingTestCase(CiTestCase):