This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients michael.foord, ncoghlan
Date 2012-06-07.07:40:54
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1339054856.06.0.856824140254.issue15024@psf.upfronthosting.co.za>
In-reply-to
Content
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]
History
Date User Action Args
2012-06-07 07:40:56ncoghlansetrecipients: + ncoghlan, michael.foord
2012-06-07 07:40:56ncoghlansetmessageid: <1339054856.06.0.856824140254.issue15024@psf.upfronthosting.co.za>
2012-06-07 07:40:55ncoghlanlinkissue15024 messages
2012-06-07 07:40:54ncoghlancreate