Index: Lib/unittest/case.py =================================================================== --- Lib/unittest/case.py (revision 77909) +++ Lib/unittest/case.py (working copy) @@ -748,10 +748,11 @@ actual = list(actual_seq) with warnings.catch_warnings(): if sys.py3kwarning: - # Silence Py3k warning - warnings.filterwarnings("ignore", - "dict inequality comparisons " - "not supported", DeprecationWarning) + # Silence Py3k warning raised during the sorting + for msg in ["dict inequality comparisons", + "builtin_function_or_method order comparisons", + "comparing unequal types"]: + warnings.filterwarnings("ignore", msg, DeprecationWarning) expected.sort() actual.sort() missing, unexpected = util.sorted_list_difference(expected, actual) Index: Lib/test/test_unittest.py =================================================================== --- Lib/test/test_unittest.py (revision 77909) +++ Lib/test/test_unittest.py (working copy) @@ -2657,7 +2657,15 @@ # 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}]) + with test_support.check_warnings() as w: + # comparing dicts raises a py3k warning + self.assertSameElements([{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 1}]) + # comparing heterogenous non-hashable sequences raises a py3k warning + self.assertSameElements([1, 'x', divmod, []], [divmod, [], 'x', 1]) + # fail the test if warnings are not silenced + if w.warnings: + self.fail('assertSameElements raised a warning: ' + + str(w.warnings[0])) self.assertRaises(self.failureException, self.assertSameElements, [[1]], [[2]])