diff options
author | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-06-23 11:56:28 +0200 |
---|---|---|
committer | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-06-23 11:56:28 +0200 |
commit | 9eded02584ac86707d53adbcc12ce7ff6ed72981 (patch) | |
tree | dae7a58eeb07bbdee146516c7cdf5c1c1da79bd9 | |
parent | 44122d8bc6c78e5453169b03097f52dc7ea8477f (diff) | |
download | logilab-common-9eded02584ac86707d53adbcc12ce7ff6ed72981.tar.gz |
add assertUnorderedIterableEquals
-rw-r--r-- | test/unittest_testlib.py | 39 | ||||
-rw-r--r-- | testlib.py | 22 |
2 files changed, 44 insertions, 17 deletions
diff --git a/test/unittest_testlib.py b/test/unittest_testlib.py index e140823..2a5302e 100644 --- a/test/unittest_testlib.py +++ b/test/unittest_testlib.py @@ -116,30 +116,37 @@ class TestlibTC(TestCase): self.assertRaises(AssertionError, self.tc.assertXMLStringWellFormed, invalid) - def test_set_equality_for_lists(self): + def test_unordered_equality_for_lists(self): l1 = [0, 1, 2] l2 = [1, 2, 3] - self.assertRaises(AssertionError, self.tc.assertSetEqual, l1, l2) - self.tc.assertSetEqual(l1, l1) - self.tc.assertSetEqual([], []) + self.assertRaises(AssertionError, self.tc.assertUnorderedIterableEquals, l1, l2) + self.tc.assertUnorderedIterableEquals(l1, l1) + self.tc.assertUnorderedIterableEquals([], []) l1 = [0, 1, 1] l2 = [0, 1] - self.assertRaises(AssertionError, self.tc.assertSetEqual, l1, l2) - self.tc.assertSetEqual(l1, l1) + self.assertRaises(AssertionError, self.tc.assertUnorderedIterableEquals, l1, l2) + self.tc.assertUnorderedIterableEquals(l1, l1) - def test_set_equality_for_dicts(self): + def test_unordered_equality_for_dicts(self): d1 = {'a' : 1, 'b' : 2} d2 = {'a' : 1} - self.assertRaises(AssertionError, self.tc.assertSetEqual, d1, d2) - self.tc.assertSetEqual(d1, d1) - self.tc.assertSetEqual({}, {}) - - def test_set_equality_for_iterables(self): - self.assertRaises(AssertionError, self.tc.assertSetEqual, xrange(5), xrange(6)) - self.tc.assertSetEqual(xrange(5), range(5)) - self.tc.assertSetEqual([], ()) - + self.assertRaises(AssertionError, self.tc.assertUnorderedIterableEquals, d1, d2) + self.tc.assertUnorderedIterableEquals(d1, d1) + self.tc.assertUnorderedIterableEquals({}, {}) + + def test_unordered_equality_for_iterables(self): + self.assertRaises(AssertionError, self.tc.assertUnorderedIterableEquals, xrange(5), xrange(6)) + self.tc.assertUnorderedIterableEquals(xrange(5), range(5)) + self.tc.assertUnorderedIterableEquals([], ()) + + def test_unordered_equality_for_dicts(self): + s1 = set('ab') + s2 = set('a') + self.assertRaises(AssertionError, self.tc.assertSetEquals, s1, s2) + self.tc.assertSetEquals(s1, s1) + self.tc.assertSetEquals(set(), set()) + def test_file_equality(self): foo = join(dirname(__file__), 'data', 'foo.txt') spam = join(dirname(__file__), 'data', 'spam.txt') @@ -1140,7 +1140,9 @@ class TestCase(unittest.TestCase): self.fail(''.join(msgs)) assertDictEqual = assertDictEquals - def assertSetEquals(self, got, expected, msg=None): + + + def assertUnorderedIterableEquals(self, got, expected, msg=None): """compares two iterable and shows difference between both""" got, expected = list(got), list(expected) if msg is None: @@ -1155,6 +1157,24 @@ class TestCase(unittest.TestCase): if msg is None: msg = '\tunexpected: %s\n\tmissing: %s' % (unexpected, missing) self.fail(msg) + + assertUnorderedIterableEqual = assertUnorderedIterableEquals + + def assertSetEquals(self,got,expected, msg=None): + if not(isinstance(got, set) or isinstance(expected, set)): + warn("the assertSetEquals function if now intended for set only."\ + "use assertUnorderedIterableEquals instead.", + DeprecationWarning, 2) + return self.assertUnorderedIterableEquals(got,expected, msg) + + missing = expected - got + unexpected = got - expected + if missing or unexpected: + if msg is None: + msg = '\tunexpected: %s\n\tmissing: %s' % (unexpected, missing) + self.fail(msg) + + assertSetEqual = assertSetEquals def assertListEquals(self, list_1, list_2, msg=None): |