New submission from Nick Coghlan <ncogh...@gmail.com>: The unittest module has some lovely enhanced comparison operations, but they're currently hard to access outside a test run.
It would be rather convenient if they were split out into a separate base class so they could be used directly without needing to create an actual test case. Possible API: class Assertions: # All the enhanced assertion machinery goes here # Nothing related to actually running test cases class TestCase(Assertions): # This adds support for setUp, tearDown, addCleanup etc, etc My current workaround is to just define a dummy "runTest" method in a subclass and use that: >>> class Assertions(unittest.TestCase): ... def runTest(self): pass ... >>> check = Assertions() >>> check.assertEqual([], ()) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.7/unittest/case.py", line 511, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python2.7/unittest/case.py", line 504, in _baseAssertEqual raise self.failureException(msg) AssertionError: [] != () >>> check.assertEqual([1], [2]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.7/unittest/case.py", line 511, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python2.7/unittest/case.py", line 740, in assertListEqual self.assertSequenceEqual(list1, list2, msg, seq_type=list) File "/usr/lib64/python2.7/unittest/case.py", line 722, in assertSequenceEqual self.fail(msg) File "/usr/lib64/python2.7/unittest/case.py", line 408, in fail raise self.failureException(msg) AssertionError: Lists differ: [1] != [2] First differing element 0: 1 2 - [1] + [2] ---------- messages: 162463 nosy: michael.foord, ncoghlan priority: normal severity: normal status: open title: Split enhanced assertion support out as a unittest.TestCase base class _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15024> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com