New submission from Bruno Oliveira <nicodde...@gmail.com>:

Consider this code:

    import unittest


    class TC(unittest.TestCase):

        def test_subtest(self):
            with self.subTest():
                pass


    tc = TC('test_subtest')
    tc.run()

This works when executed, but if we change ``tc.run()`` to ``tc.debug()`` we 
get the following exception:    

    Traceback (most recent call last):
      File ".tmp\test-unittest-regression.py", line 13, in <module>
        tc.debug()
      File 
"C:\Users\Bruno\AppData\Local\Programs\Python\Python36\lib\unittest\case.py", 
line 658, in debug
        getattr(self, self._testMethodName)()
      File ".tmp\test-unittest-regression.py", line 7, in test_subtest
        with self.subTest():
      File 
"C:\Users\Bruno\AppData\Local\Programs\Python\Python36\lib\contextlib.py", line 
81, in __enter__
        return next(self.gen)
      File 
"C:\Users\Bruno\AppData\Local\Programs\Python\Python36\lib\unittest\case.py", 
line 512, in subTest
        if not self._outcome.result_supports_subtests:
    AttributeError: 'NoneType' object has no attribute 
'result_supports_subtests'    

Looking at the code, ``subTest`` assumes that the ``TestCase`` instance has the 
``self._outcome`` atribute, which is set only by ``run()``.

----------
components: Library (Lib)
messages: 327092
nosy: Bruno Oliveira
priority: normal
severity: normal
status: open
title: unittest subTests() fails when called from debug()
versions: Python 3.4, Python 3.5, Python 3.6, Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34900>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to