asyncio: Add an unit test to check that setting the PYTHONASYNCIODEBUG env var

enables debug mode of the event loop.
This commit is contained in:
Victor Stinner 2014-06-23 00:19:33 +02:00
parent 7b7120e159
commit c082ee692b
2 changed files with 24 additions and 4 deletions

View File

@ -7,6 +7,7 @@ import sys
import time import time
import unittest import unittest
from unittest import mock from unittest import mock
from test.script_helper import assert_python_ok
from test.support import IPV6_ENABLED from test.support import IPV6_ENABLED
import asyncio import asyncio
@ -489,6 +490,29 @@ class BaseEventLoopTests(test_utils.TestCase):
self.assertIs(type(_context['context']['exception']), self.assertIs(type(_context['context']['exception']),
ZeroDivisionError) ZeroDivisionError)
def test_env_var_debug(self):
code = '\n'.join((
'import asyncio',
'loop = asyncio.get_event_loop()',
'print(loop.get_debug())'))
# Test with -E to not fail if the unit test was run with
# PYTHONASYNCIODEBUG set to a non-empty string
sts, stdout, stderr = assert_python_ok('-E', '-c', code)
self.assertEqual(stdout.rstrip(), b'False')
sts, stdout, stderr = assert_python_ok('-c', code,
PYTHONASYNCIODEBUG='')
self.assertEqual(stdout.rstrip(), b'False')
sts, stdout, stderr = assert_python_ok('-c', code,
PYTHONASYNCIODEBUG='1')
self.assertEqual(stdout.rstrip(), b'True')
sts, stdout, stderr = assert_python_ok('-E', '-c', code,
PYTHONASYNCIODEBUG='1')
self.assertEqual(stdout.rstrip(), b'False')
class MyProto(asyncio.Protocol): class MyProto(asyncio.Protocol):
done = None done = None

View File

@ -1577,11 +1577,7 @@ class GatherTestsBase:
self.assertEqual(fut.result(), [3, 1, exc, exc2]) self.assertEqual(fut.result(), [3, 1, exc, exc2])
def test_env_var_debug(self): def test_env_var_debug(self):
path = os.path.dirname(asyncio.__file__)
path = os.path.normpath(os.path.join(path, '..'))
code = '\n'.join(( code = '\n'.join((
'import sys',
'sys.path.insert(0, %r)' % path,
'import asyncio.tasks', 'import asyncio.tasks',
'print(asyncio.tasks._DEBUG)')) 'print(asyncio.tasks._DEBUG)'))