Message162463
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] |
|
Date |
User |
Action |
Args |
2012-06-07 07:40:56 | ncoghlan | set | recipients:
+ ncoghlan, michael.foord |
2012-06-07 07:40:56 | ncoghlan | set | messageid: <1339054856.06.0.856824140254.issue15024@psf.upfronthosting.co.za> |
2012-06-07 07:40:55 | ncoghlan | link | issue15024 messages |
2012-06-07 07:40:54 | ncoghlan | create | |
|