From bc3039a43c5d4f783e8ef435ec43d4eee5e2f83a Mon Sep 17 00:00:00 2001 From: Dean Troyer <dtroyer@gmail.com> Date: Mon, 10 Jun 2013 14:06:41 -0500 Subject: [PATCH] Fix py26 tests: assertDictEqual assertDictEqual is not present in py26 so shim it in here stolen from python-keystoneclient/tests/test_auth_token_middleware.py Change-Id: Ifd5990a8c03d11ee93cddc2f61653255970d974c --- tests/utils.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/utils.py b/tests/utils.py index 75515fad56..3e24ff4a99 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -16,12 +16,13 @@ import os import fixtures +import sys import testtools class TestCase(testtools.TestCase): def setUp(self): - super(TestCase, self).setUp() + testtools.TestCase.setUp(self) if (os.environ.get("OS_STDOUT_NOCAPTURE") == "True" and os.environ.get("OS_STDOUT_NOCAPTURE") == "1"): @@ -32,3 +33,27 @@ class TestCase(testtools.TestCase): os.environ.get("OS_STDERR_NOCAPTURE") == "1"): stderr = self.useFixture(fixtures.StringStream("stderr")).stream self.useFixture(fixtures.MonkeyPatch("sys.stderr", stderr)) + + # 2.6 doesn't have the assert dict equals so make sure that it exists + if tuple(sys.version_info)[0:2] < (2, 7): + + def assertIsInstance(self, obj, cls, msg=None): + """Same as self.assertTrue(isinstance(obj, cls)), with a nicer + default message + """ + if not isinstance(obj, cls): + standardMsg = '%s is not an instance of %r' % (obj, cls) + self.fail(self._formatMessage(msg, standardMsg)) + + def assertDictEqual(self, d1, d2, msg=None): + # Simple version taken from 2.7 + self.assertIsInstance(d1, dict, + 'First argument is not a dictionary') + self.assertIsInstance(d2, dict, + 'Second argument is not a dictionary') + if d1 != d2: + if msg: + self.fail(msg) + else: + standardMsg = '%r != %r' % (d1, d2) + self.fail(standardMsg)