From 91c9da34bc155139618d3c837d9bc7cef1ac4a17 Mon Sep 17 00:00:00 2001 From: Michael Foord Date: Sat, 20 Mar 2010 17:21:27 +0000 Subject: [PATCH] Issue 7832. Deprecating assertSameElements in Py3k. --- Lib/test/test_unittest.py | 21 ++------------------- Lib/unittest/case.py | 9 +++++---- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index cf734f7e169..f24a9292597 100644 --- a/Lib/test/test_unittest.py +++ b/Lib/test/test_unittest.py @@ -2758,24 +2758,6 @@ class Test_TestCase(TestCase, TestEquality, TestHashing): self.assertRaises(self.failureException, self.assertDictEqual, [], d) self.assertRaises(self.failureException, self.assertDictEqual, 1, 1) - self.assertSameElements([1, 2, 3], [3, 2, 1]) - self.assertSameElements([1, 2] + [3] * 100, [1] * 100 + [2, 3]) - self.assertSameElements(['foo', 'bar', 'baz'], ['bar', 'baz', 'foo']) - self.assertRaises(self.failureException, self.assertSameElements, - [10], [10, 11]) - self.assertRaises(self.failureException, self.assertSameElements, - [10, 11], [10]) - - # Test that sequences of unhashable objects can be tested for sameness: - self.assertSameElements([[1, 2], [3, 4]], [[3, 4], [1, 2]]) - - self.assertSameElements([{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 1}]) - self.assertRaises(self.failureException, self.assertSameElements, - [[1]], [[2]]) - self.assertRaises(self.failureException, self.assertSameElements, - [{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 2}]) - - def testAssertItemsEqual(self): a = object() self.assertItemsEqual([1, 2, 3], [3, 2, 1]) @@ -3032,7 +3014,8 @@ test case (self.failIfAlmostEqual, (3.0, 5.0)), (self.failUnless, (True,)), (self.failUnlessRaises, (TypeError, lambda _: 3.14 + 'spam')), - (self.failIf, (False,)) + (self.failIf, (False,)), + (self.assertSameElements, ([1, 1, 2, 3], [1, 2, 3])) ) for meth, args in old: with warnings.catch_warnings(record=True) as w: diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index d9f35fe39c3..0d224d8a757 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -700,10 +700,9 @@ class TestCase(object): msg: Optional message to use on failure instead of a list of differences. - For more general containership equality, assertSameElements will work - with things other than sets. This uses ducktyping to support - different types of sets, and is optimized for sets specifically - (parameters must support a difference method). + assertSetEqual uses ducktyping to support different types of sets, and + is optimized for sets specifically (parameters must support a + difference method). """ try: difference1 = set1.difference(set2) @@ -809,6 +808,8 @@ class TestCase(object): set(actual))`` but it works with sequences of unhashable objects as well. """ + warnings.warn('assertSameElements is deprecated', + DeprecationWarning) try: expected = set(expected_seq) actual = set(actual_seq)