Skip to content

Commit 66699e0

Browse files
committed
Subscribeon: test that the right scheduler is passed to the subscribe function of the source.
1 parent 2ae9fa4 commit 66699e0

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

tests/test_observable/test_subscribeon.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import unittest
22

3-
from reactivex import operators as ops
3+
from reactivex import operators as ops, create as rx_create
44
from reactivex.testing import ReactiveTest, TestScheduler
55

66
on_next = ReactiveTest.on_next
@@ -71,6 +71,28 @@ def create():
7171
assert results.messages == []
7272
assert xs.subscriptions == [subscribe(200, 1000)]
7373

74+
def test_subscribe_on_scheduler_forwarding(self):
75+
scheduler = TestScheduler()
76+
forwarded_sheduler = None
77+
78+
def source():
79+
def subscribe(observer, _scheduler):
80+
nonlocal forwarded_sheduler
81+
forwarded_sheduler = _scheduler
82+
83+
def action_on_completed(_, __):
84+
observer.on_completed()
85+
86+
return _scheduler.schedule_absolute(250, action_on_completed)
87+
88+
return rx_create(subscribe)
89+
90+
def create():
91+
return source().pipe(ops.subscribe_on(scheduler))
92+
93+
results = scheduler.start(create)
94+
assert forwarded_sheduler is scheduler
95+
assert results.messages == [on_completed(250)]
7496

7597
if __name__ == "__main__":
7698
unittest.main()

0 commit comments

Comments
 (0)