def test_interval(self): scheduler = TestScheduler() on_next = ReactiveTest.on_next self.messages = scheduler.create_hot_observable( on_next(10, 'posted: 32: sell ABC 199 @ $1.23'), on_next(11, 'fulfilled: 32: sell ABC 199 @ $1.23'), on_next(101, 'posted: 32: buy ABC 199 @ $1.23'), on_next(102, 'fulfilled: 32: buy ABC 199 @ $1.23'), ReactiveTest.on_completed(750), ) self.results = [] def create(scheduler, state): self.aggregate = utils.aggregate_stock_orders_from_messages( self.messages) def subscribe(scheduler, state): self.subscription = self.aggregate.subscribe( lambda value: self.results.append(value)) def dispose(scheduler, state): self.subscription.dispose() scheduler.schedule_absolute(1, create) scheduler.schedule_absolute(2, subscribe) scheduler.schedule_absolute(1000, dispose) scheduler.start().messages self.results
def test_to_observable_return(): scheduler = TestScheduler() def create(): return OnNext(42).to_observable(scheduler) res = scheduler.start(create) res.messages.assert_equal(ReactiveTest.on_next(201, 42), ReactiveTest.on_completed(201))
def test_to_observable_empty(): scheduler = TestScheduler() def create(): return OnCompleted().to_observable(scheduler) res = scheduler.start(create) res.messages.assert_equal(ReactiveTest.on_completed(201))
def test_to_observable_return(): scheduler = TestScheduler() def create(): return OnNext(42).to_observable(scheduler) res = scheduler.start(create) assert res.messages == [ReactiveTest.on_next(200, 42), ReactiveTest.on_completed(200)]
def test_to_observable_empty(): scheduler = TestScheduler() def create(): return OnCompleted().to_observable(scheduler) res = scheduler.start(create) assert res.messages == [ReactiveTest.on_completed(200)]
def messages_to_records(messages: List[Tuple]) -> List[Recorded]: """ Helper function to convert messages returned by parse() to a list of Recorded. """ records = [] dispatcher = dict(N=lambda t, n: ReactiveTest.on_next(t, n.value), E=lambda t, n: ReactiveTest.on_error(t, n.exception), C=lambda t, n: ReactiveTest.on_completed(t)) for message in messages: time, notification = message kind = notification.kind record = dispatcher[kind](time, notification) records.append(record) return records
def messages_to_records(messages: List[Tuple]) -> List[Recorded]: """ Helper function to convert messages returned by parse() to a list of Recorded. """ records = [] dispatcher = dict( N=lambda t, n: ReactiveTest.on_next(t, n.value), E=lambda t, n: ReactiveTest.on_error(t, n.exception), C=lambda t, n: ReactiveTest.on_completed(t) ) for message in messages: time, notification = message kind = notification.kind record = dispatcher[kind](time, notification) records.append(record) return records