Skip to content

Commit b6a1e93

Browse files
Merge pull request #2 from niketh-keshavan/niketh/codecov-testing
Niketh/codecov testing
2 parents c35969d + 2a2fbb7 commit b6a1e93

1 file changed

Lines changed: 34 additions & 25 deletions

File tree

qtrio/_tests/test_core.py

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import os
22
import sys
3-
import threading
43
import time
54
import typing
65

@@ -27,44 +26,54 @@ def emissions_channel_fixture(request):
2726
return request.param
2827

2928

29+
timeout = 40
30+
31+
3032
@pytest.mark.parametrize("event_type_registered", [True, False])
31-
def test_reenter_event_triggers_in_main_thread(
32-
qapp, monkeypatch, event_type_registered
33-
):
33+
def test_reenter_event_triggers_in_main_thread(testdir, event_type_registered):
3434
"""Reenter events posted in another thread result in the function being run in the
35-
main thread.
35+
main thread. Run in a subprocess so the reenter event type starts out unregistered.
3636
"""
37+
if event_type_registered:
38+
preregistration = "qtrio.register_event_type()"
39+
else:
40+
preregistration = ""
41+
42+
test_file = rf"""
43+
import threading
44+
45+
import qtrio
3746
import qtrio.qt
3847
39-
# TODO: i don't like monkeypatch... but oh well, let's get rid of it someday and here's some context.
40-
# https://github.com/altendky/qtrio/pull/288/changes#r3619087492
41-
monkeypatch.setattr(qtrio._core, "_reenter_event_type", None)
42-
if event_type_registered:
43-
qtrio.register_event_type()
4448
45-
result = []
49+
def test(qapp):
50+
{preregistration}
4651
47-
reenter = qtrio.qt.Reenter()
52+
result = []
4853
49-
def post():
50-
if qtrio.registered_event_type() is None:
51-
qtrio.register_event_type()
52-
event = qtrio.qt.ReenterEvent(fn=handler)
53-
qapp.postEvent(reenter, event)
54+
reenter = qtrio.qt.Reenter()
5455
55-
def handler():
56-
result.append(threading.get_ident())
56+
def post():
57+
if qtrio.registered_event_type() is None:
58+
qtrio.register_event_type()
59+
event = qtrio.qt.ReenterEvent(fn=handler)
60+
qapp.postEvent(reenter, event)
5761
58-
thread = threading.Thread(target=post)
59-
thread.start()
60-
thread.join()
62+
def handler():
63+
result.append(threading.get_ident())
6164
62-
qapp.processEvents()
65+
thread = threading.Thread(target=post)
66+
thread.start()
67+
thread.join()
6368
64-
assert result == [threading.get_ident()]
69+
qapp.processEvents()
6570
71+
assert result == [threading.get_ident()]
72+
"""
73+
testdir.makepyfile(test_file)
6674

67-
timeout = 40
75+
result = testdir.runpytest_subprocess(timeout=timeout)
76+
result.assert_outcomes(passed=1)
6877

6978

7079
def test_reenter_event_raises_if_type_not_registered(testdir):

0 commit comments

Comments
 (0)