Skip to content

Commit 4c0c037

Browse files
authored
Clean up testing and coverage (#1030)
1 parent c5a045f commit 4c0c037

3 files changed

Lines changed: 73 additions & 3 deletions

File tree

.coveragerc

Lines changed: 0 additions & 2 deletions
This file was deleted.

ipykernel/tests/test_kernel_direct.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
# Copyright (c) IPython Development Team.
44
# Distributed under the terms of the Modified BSD License.
55

6+
import asyncio
67
import os
8+
import warnings
79

810
import pytest
911

@@ -72,6 +74,69 @@ async def test_direct_debug_request(kernel):
7274
assert reply["header"]["msg_type"] == "debug_reply"
7375

7476

77+
async def test_deprecated_features(kernel):
78+
with warnings.catch_warnings():
79+
warnings.simplefilter("ignore", DeprecationWarning)
80+
header = kernel._parent_header
81+
assert isinstance(header, dict)
82+
shell_streams = kernel.shell_streams
83+
assert len(shell_streams) == 1
84+
assert shell_streams[0] == kernel.shell_stream
85+
warnings.simplefilter("ignore", RuntimeWarning)
86+
kernel.shell_streams = [kernel.shell_stream, kernel.shell_stream]
87+
88+
89+
async def test_process_control(kernel):
90+
from jupyter_client.session import DELIM
91+
92+
class FakeMsg:
93+
def __init__(self, bytes):
94+
self.bytes = bytes
95+
96+
await kernel.process_control([FakeMsg(DELIM), 1])
97+
msg = kernel._prep_msg("does_not_exist")
98+
await kernel.process_control(msg)
99+
100+
101+
def test_should_handle(kernel):
102+
msg = kernel.session.msg("debug_request", {})
103+
kernel.aborted.add(msg["header"]["msg_id"])
104+
assert not kernel.should_handle(kernel.control_stream, msg, [])
105+
106+
107+
async def test_dispatch_shell(kernel):
108+
from jupyter_client.session import DELIM
109+
110+
class FakeMsg:
111+
def __init__(self, bytes):
112+
self.bytes = bytes
113+
114+
await kernel.dispatch_shell([FakeMsg(DELIM), 1])
115+
msg = kernel._prep_msg("does_not_exist")
116+
await kernel.dispatch_shell(msg)
117+
118+
119+
async def test_enter_eventloop(kernel):
120+
kernel.eventloop = None
121+
kernel.enter_eventloop()
122+
kernel.eventloop = asyncio.get_running_loop()
123+
kernel.enter_eventloop()
124+
called = 0
125+
126+
def check_status():
127+
nonlocal called
128+
if called == 0:
129+
msg = kernel.session.msg("debug_request", {})
130+
kernel.msg_queue.put(msg)
131+
called += 1
132+
kernel.io_loop.call_later(0.001, check_status)
133+
134+
kernel.io_loop.call_later(0.001, check_status)
135+
kernel.start()
136+
while called < 2:
137+
await asyncio.sleep(0.1)
138+
139+
75140
# TODO: this causes deadlock
76141
# async def test_direct_usage_request(kernel):
77142
# reply = await kernel.test_control_message("usage_request", {})

pyproject.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ nowarn = "test -W default {args}"
8181

8282
[tool.hatch.envs.cov]
8383
features = ["test"]
84-
dependencies = ["coverage", "pytest-cov", "matplotlib", "curio", "trio"]
84+
dependencies = ["coverage[toml]", "pytest-cov", "matplotlib", "curio", "trio"]
8585
[tool.hatch.envs.cov.scripts]
8686
test = "python -m pytest -vv --cov ipykernel --cov-branch --cov-report term-missing:skip-covered {args}"
8787
nowarn = "test -W default {args}"
@@ -143,6 +143,13 @@ exclude_lines = [
143143
"@(abc\\.)?abstractmethod",
144144
]
145145

146+
[tool.coverage.run]
147+
omit = [
148+
"ipykernel/tests/*",
149+
"ipykernel/debugger.py",
150+
"ipykernel/eventloops.py",
151+
]
152+
146153
[tool.flake8]
147154
ignore = "E501, W503, E402"
148155
builtins = "c, get_config"

0 commit comments

Comments
 (0)