[issue15024] Split enhanced assertion support out as a unittest.TestCase base class

Nick Coghlan report at bugs.python.org
Thu Jun 7 09:40:56 CEST 2012


New submission from Nick Coghlan <ncoghlan at 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 <report at bugs.python.org>
<http://bugs.python.org/issue15024>
_______________________________________


More information about the Python-bugs-list mailing list