Skip to content

Commit 2624a33

Browse files
bollwyvlZsailer
authored andcommitted
more work on removing asyncio patch
1 parent 8e6c797 commit 2624a33

File tree

2 files changed

+25
-43
lines changed

2 files changed

+25
-43
lines changed

jupyter_server/serverapp.py

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,32 +1604,12 @@ def init_httpserver(self):
16041604

16051605
@staticmethod
16061606
def _init_asyncio_patch():
1607-
return
1608-
# """set default asyncio policy to be compatible with tornado
1609-
# Tornado 6 (at least) is not compatible with the default
1610-
# asyncio implementation on Windows
1611-
# Pick the older SelectorEventLoopPolicy on Windows
1612-
# if the known-incompatible default policy is in use.
1613-
# do this as early as possible to make it a low priority and overrideable
1614-
# ref: https://github.com/tornadoweb/tornado/issues/2608
1615-
# FIXME: if/when tornado supports the defaults in asyncio,
1616-
# remove and bump tornado requirement for py38
1617-
# """
1618-
# if sys.platform.startswith("win") and sys.version_info >= (3, 8):
1619-
# import asyncio
1620-
# try:
1621-
# from asyncio import (
1622-
# WindowsProactorEventLoopPolicy,
1623-
# WindowsSelectorEventLoopPolicy,
1624-
# )
1625-
# except ImportError:
1626-
# pass
1627-
# # not affected
1628-
# else:
1629-
# if type(asyncio.get_event_loop_policy()) is WindowsProactorEventLoopPolicy:
1630-
# # WindowsProactorEventLoopPolicy is not compatible with tornado 6
1631-
# # fallback to the pre-3.8 default of Selector
1632-
# asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
1607+
"""no longer needed with tornado 6.1"""
1608+
warnings.warn(
1609+
"""ServerApp._init_asyncio_patch called, and is longer needed for """
1610+
"""tornado 6.1+, and will be removed in a future release.""",
1611+
DeprecationWarning
1612+
)
16331613

16341614
@catch_config_error
16351615
def initialize(self, argv=None, find_extensions=True, new_httpserver=True):
@@ -1649,7 +1629,6 @@ def initialize(self, argv=None, find_extensions=True, new_httpserver=True):
16491629
If True, a tornado HTTPServer instance will be created and configured for the Server Web
16501630
Application. This will set the http_server attribute of this class.
16511631
"""
1652-
self._init_asyncio_patch()
16531632
# Parse command line, load ServerApp config files,
16541633
# and update ServerApp config.
16551634
super(ServerApp, self).initialize(argv)

tests/test_files.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,25 @@
1010
new_output)
1111

1212

13-
async def test_hidden_files(fetch, serverapp, root_dir):
14-
not_hidden = [
15-
u'å b',
16-
u'å b/ç. d',
17-
]
18-
hidden = [
19-
u'.å b',
20-
u'å b/.ç d',
21-
]
22-
dirs = not_hidden + hidden
23-
24-
for d in dirs:
25-
path = root_dir / d.replace('/', os.sep)
26-
path.mkdir(parents=True, exist_ok=True)
27-
path.joinpath('foo').write_text('foo')
28-
path.joinpath('.foo').write_text('.foo')
13+
@pytest.fixture(params=[
14+
[False, ['å b']],
15+
[False, ['å b', 'ç. d']],
16+
[True, ['.å b']],
17+
[True, ['å b', '.ç d']]
18+
])
19+
def maybe_hidden(request):
20+
return request.param
21+
22+
23+
async def fetch_expect_200(fetch, *path_parts):
24+
r = await fetch('files', *path_parts, method='GET')
25+
assert (r.body.decode() == path_parts[-1]), (path_parts, r.body)
26+
27+
28+
async def fetch_expect_404(fetch, *path_parts):
29+
with pytest.raises(tornado.httpclient.HTTPClientError) as e:
30+
r = await fetch('files', *path_parts, method='GET')
31+
assert expected_http_error(e, 404), [path_parts, e]
2932

3033

3134
for d in not_hidden:

0 commit comments

Comments
 (0)