summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorRyan Harper <ryan.harper@canonical.com>2017-12-06 16:30:22 -0600
committerScott Moser <smoser@brickies.net>2017-12-07 22:40:07 -0500
commita110e483e8644ab73e69853ea11b6c4c6cfa04b6 (patch)
tree455267ae3a8b69d0d6d93c142160422925ba04ec /cloudinit
parent0cf6db3617e0cebeb89c4809396f84360827e96c (diff)
downloadvyos-cloud-init-a110e483e8644ab73e69853ea11b6c4c6cfa04b6.tar.gz
vyos-cloud-init-a110e483e8644ab73e69853ea11b6c4c6cfa04b6.zip
pylint: Update pylint to 1.7.1, run on tests/ and tools and fix complaints.
The motivation for this is that a.) 1.7.1 runs with python 3.6 (bionic) b.) we want to run pylint on tests/ and tools for the same reasons that we want to run it on cloudinit/ The changes are described below. - Update tox.ini to invoke pylint v1.7.1. - Modify .pylintrc generated-members ignore mocked object members (m_.*) - Replace "dangerous" params defaulting to {} - Fix up cloud_tests use of platforms - Cast some instance objects to with dict() - Handle python2.7 vs 3+ ConfigParser use of readfp (deprecated) - Update use of assertEqual(<boolean>, value) to assert<Boolean>(value) - replace depricated assertRegexp -> assertRegex - Remove useless test-class calls to super class - Assign class property accessors a result and use it - Fix missing class member in CepkoResultTests - Fix Cheetah test import
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/cmd/tests/test_clean.py2
-rw-r--r--cloudinit/cmd/tests/test_status.py2
-rw-r--r--cloudinit/tests/helpers.py35
3 files changed, 37 insertions, 2 deletions
diff --git a/cloudinit/cmd/tests/test_clean.py b/cloudinit/cmd/tests/test_clean.py
index af438aab..1379740b 100644
--- a/cloudinit/cmd/tests/test_clean.py
+++ b/cloudinit/cmd/tests/test_clean.py
@@ -151,7 +151,7 @@ class TestClean(CiTestCase):
'sys.argv': {'new': ['clean', '--logs']}},
clean.main)
- self.assertEqual(0, context_manager.exception.code)
+ self.assertRaisesCodeEqual(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 8ec9b5bc..6d4a11e8 100644
--- a/cloudinit/cmd/tests/test_status.py
+++ b/cloudinit/cmd/tests/test_status.py
@@ -347,7 +347,7 @@ class TestStatus(CiTestCase):
'_is_cloudinit_disabled': (False, ''),
'Init': {'side_effect': self.init_class}},
status.main)
- self.assertEqual(0, context_manager.exception.code)
+ self.assertRaisesCodeEqual(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 feb884ab..0080c729 100644
--- a/cloudinit/tests/helpers.py
+++ b/cloudinit/tests/helpers.py
@@ -19,6 +19,11 @@ try:
except ImportError:
from contextlib2 import ExitStack
+try:
+ from configparser import ConfigParser
+except ImportError:
+ from ConfigParser import ConfigParser
+
from cloudinit import helpers as ch
from cloudinit import util
@@ -113,6 +118,16 @@ class TestCase(unittest2.TestCase):
self.addCleanup(m.stop)
setattr(self, attr, p)
+ # prefer python3 read_file over readfp but allow fallback
+ def parse_and_read(self, contents):
+ parser = ConfigParser()
+ if hasattr(parser, 'read_file'):
+ parser.read_file(contents)
+ elif hasattr(parser, 'readfp'):
+ # pylint: disable=W1505
+ parser.readfp(contents)
+ return parser
+
class CiTestCase(TestCase):
"""This is the preferred test case base class unless user
@@ -158,6 +173,18 @@ 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)
+
class ResourceUsingTestCase(CiTestCase):
@@ -395,4 +422,12 @@ if not hasattr(mock.Mock, 'assert_not_called'):
mock.Mock.assert_not_called = __mock_assert_not_called
+# older unittest2.TestCase (centos6) do not have assertRaisesRegex
+# And setting assertRaisesRegex to assertRaisesRegexp causes
+# https://github.com/PyCQA/pylint/issues/1653 . So the workaround.
+if not hasattr(unittest2.TestCase, 'assertRaisesRegex'):
+ def _tricky(*args, **kwargs):
+ return unittest2.TestCase.assertRaisesRegexp
+ unittest2.TestCase.assertRaisesRegex = _tricky
+
# vi: ts=4 expandtab