Skip to content

Commit 14176ba

Browse files
committed
Make Metronome tests fast
1 parent d0fead2 commit 14176ba

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

tests/test_producers.py

+12-17
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import trio
33

44
from slurry import Pipeline
5-
from slurry.sections import Repeat, Metronome, InsertValue
5+
from slurry.sections import Repeat, Metronome, InsertValue, _producers
66

77
from .fixtures import produce_alphabet
88

@@ -51,32 +51,27 @@ async def test_repeat_input(autojump_clock):
5151
break
5252
assert results == [('a', 1), ('a', 2), ('b', 2.5), ('b', 3.5), ('c', 4)]
5353

54-
async def test_metronome():
54+
async def test_metronome(autojump_clock, monkeypatch):
55+
monkeypatch.setattr(_producers, "time", trio.current_time)
5556
async with Pipeline.create(
56-
produce_alphabet(5, max=3),
57+
produce_alphabet(5, max=6, delay=1),
5758
Metronome(5)
5859
) as pipeline, pipeline.tap() as aiter:
5960
results = []
60-
start_time = trio.current_time()
6161
async for item in aiter:
62-
results.append((item, trio.current_time() - start_time))
63-
if len(results) == 2:
64-
break
65-
assert [x[0] for x in results] == ['a', 'b']
66-
assert 5 - results[1][1] + results[0][1] < 0.1
62+
results.append((item, trio.current_time()))
63+
assert results == [(letter, 5.0 * (i + 1)) for i, letter in enumerate("abcde")]
6764

68-
async def test_metronome_no_input():
65+
async def test_metronome_no_input(autojump_clock, monkeypatch):
66+
monkeypatch.setattr(_producers, "time", trio.current_time)
6967
async with Pipeline.create(
7068
Metronome(5, "a")
7169
) as pipeline, pipeline.tap() as aiter:
7270
results = []
73-
start_time = trio.current_time()
74-
async for item in aiter:
75-
results.append((item, trio.current_time() - start_time))
76-
if len(results) == 2:
77-
break
78-
assert [x[0] for x in results] == ['a', 'a']
79-
assert 5 - results[1][1] + results[0][1] < 0.1
71+
for _ in range(5):
72+
item = await aiter.__anext__()
73+
results.append((item, trio.current_time()))
74+
assert results == [("a", 5.0 * (i + 1)) for i in range(5)]
8075

8176
async def test_insert_value(autojump_clock):
8277
async with Pipeline.create(

0 commit comments

Comments
 (0)