99import shutil
1010import urllib .parse
1111from binascii import hexlify
12- from contextlib import closing
1312
1413import jupyter_core .paths
1514import pytest
2524 from jupyter_server .extension import serverextension
2625 from jupyter_server .serverapp import JUPYTER_SERVICE_HANDLERS , ServerApp
2726 from jupyter_server .utils import url_path_join
28- from pytest_tornasync .plugin import AsyncHTTPServerClient
2927 from tornado .escape import url_escape
3028 from tornado .httpclient import HTTPClientError
3129 from tornado .websocket import WebSocketHandler
4442 )
4543
4644
47- # Bring in core plugins.
45+ # Bring in local plugins.
4846from pytest_jupyter import * # noqa
47+ from pytest_jupyter .pytest_tornasync import * # noqa
4948from pytest_jupyter .utils import mkdir
5049
51- # List of dependencies needed for this plugin.
52- pytest_plugins = ["pytest_tornasync" ]
53-
54-
5550# Override some of the fixtures from pytest_tornasync
5651# The io_loop fixture is overidden in jupyter_core.py so it
5752# can be shared by other plugins that need it (e.g. jupyter_client.py).
5853
5954
6055@pytest .fixture
61- def http_server_client (http_server , io_loop ):
62- """
63- Create an asynchronous HTTP client that can fetch from `http_server`.
64- """
65-
66- async def get_client ():
67- return AsyncHTTPServerClient (http_server = http_server )
68-
69- client = io_loop .run_sync (get_client )
70- with closing (client ) as context :
71- yield context
72-
73-
74- @pytest .fixture
75- def http_server (io_loop , http_server_port , jp_web_app ):
56+ def jp_http_server (jp_io_loop , jp_http_server_port , jp_web_app ):
7657 """Start a tornado HTTP server that listens on all available interfaces."""
7758
7859 async def get_server ():
7960 server = tornado .httpserver .HTTPServer (jp_web_app )
80- server .add_socket (http_server_port [0 ])
61+ server .add_socket (jp_http_server_port [0 ])
8162 return server
8263
83- server = io_loop .run_sync (get_server )
64+ server = jp_io_loop .run_sync (get_server )
8465 yield server
8566 server .stop ()
8667
8768 if hasattr (server , "close_all_connections" ):
88- io_loop .run_sync (server .close_all_connections )
69+ jp_io_loop .run_sync (server .close_all_connections )
8970
90- http_server_port [0 ].close ()
71+ jp_http_server_port [0 ].close ()
9172
9273
9374# End pytest_tornasync overrides
@@ -126,10 +107,10 @@ def jp_argv():
126107
127108
128109@pytest .fixture ()
129- def jp_http_port (http_server_port ):
110+ def jp_http_port (jp_http_server_port ):
130111 """Returns the port value from the http_server_port fixture."""
131- yield http_server_port [- 1 ]
132- http_server_port [0 ].close ()
112+ yield jp_http_server_port [- 1 ]
113+ jp_http_server_port [0 ].close ()
133114
134115
135116@pytest .fixture
@@ -186,7 +167,7 @@ def jp_configurable_serverapp(
186167 jp_root_dir ,
187168 jp_logging_stream ,
188169 jp_asyncio_loop ,
189- io_loop ,
170+ jp_io_loop ,
190171):
191172 """Starts a Jupyter Server instance based on
192173 the provided configuration values.
@@ -216,7 +197,7 @@ def _configurable_serverapp(
216197 environ = jp_environ ,
217198 http_port = jp_http_port ,
218199 tmp_path = tmp_path ,
219- io_loop = io_loop ,
200+ io_loop = jp_io_loop ,
220201 root_dir = jp_root_dir ,
221202 ** kwargs ,
222203 ):
@@ -301,7 +282,7 @@ def jp_base_url():
301282
302283
303284@pytest .fixture
304- def jp_fetch (jp_serverapp , http_server_client , jp_auth_header , jp_base_url ):
285+ def jp_fetch (jp_serverapp , jp_http_server_client , jp_auth_header , jp_base_url ):
305286 """Sends an (asynchronous) HTTP request to a test server.
306287 The fixture is a factory; it can be called like
307288 a function inside a unit test. Here's a basic
@@ -328,14 +309,13 @@ def client_fetch(*parts, headers=None, params=None, **kwargs):
328309 for key , value in jp_auth_header .items ():
329310 headers .setdefault (key , value )
330311 # Make request.
331- print (id (http_server_client .io_loop .asyncio_loop ))
332- return http_server_client .fetch (url , headers = headers , request_timeout = 20 , ** kwargs )
312+ return jp_http_server_client .fetch (url , headers = headers , request_timeout = 20 , ** kwargs )
333313
334314 return client_fetch
335315
336316
337317@pytest .fixture
338- def jp_ws_fetch (jp_serverapp , http_server_client , jp_auth_header , jp_http_port , jp_base_url ):
318+ def jp_ws_fetch (jp_serverapp , jp_http_server_client , jp_auth_header , jp_http_port , jp_base_url ):
339319 """Sends a websocket request to a test server.
340320 The fixture is a factory; it can be called like
341321 a function inside a unit test. Here's a basic
0 commit comments