def test_repeat_observable_repeat_count_throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1).repeat(3)
    xs.subscribe(lambda x: _raise('ex'))

    try:
        return scheduler1.start()
    except RxException:
        pass

    scheduler2 = TestScheduler()
    ys = Observable.throwException('ex1', scheduler2).repeat(3)
    ys.subscribe(lambda ex: _raise('ex2'))

    try:
        return scheduler2.start()
    except RxException:
        pass

    scheduler3 = TestScheduler()
    zs = Observable.return_value(1, scheduler3).repeat(100)
    d = zs.subscribe(on_complete=lambda: _raise('ex3'))

    scheduler3.schedule_absolute(10, lambda: d.dispose())

    scheduler3.start()
    xss = Observable.create(lambda o: _raise('ex4')).repeat(3)
    try:
        return xss.subscribe()
    except RxException:
        pass
def test_Retry_Observable_Throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1).retry()
    xs.subscribe(lambda x: _raise('ex'))
    
    try:
        return scheduler1.start()
    except RxException:
        pass

    scheduler2 = TestScheduler()
    ys = Observable.throw_exception('ex', scheduler2).retry()
    d = ys.subscribe(on_error=lambda ex: _raise('ex'))
    
    scheduler2.schedule_absolute(210, lambda: d.dispose())
    
    scheduler2.start()
    scheduler3 = TestScheduler()
    zs = Observable.return_value(1, scheduler3).retry()
    zs.subscribe(on_completed=lambda: _raise('ex'))
    
    try:
        return scheduler3.start()
    except RxException:
        pass

    xss = Observable.create(lambda o: _raise('ex')).retry()
    try:
        return xss.subscribe()
    except RxException:
        pass
def test_repeat_observable_repeat_count_throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1).repeat(3)
    xs.subscribe(lambda x: _raise('ex'))
    
    try:
        return scheduler1.start()
    except RxException:
        pass

    scheduler2 = TestScheduler()
    ys = Observable.throwException('ex1', scheduler2).repeat(3)
    ys.subscribe(lambda ex: _raise('ex2'))
    
    try:
        return scheduler2.start()
    except RxException:
        pass

    scheduler3 = TestScheduler()
    zs = Observable.return_value(1, scheduler3).repeat(100)
    d = zs.subscribe(on_complete=lambda: _raise('ex3'))
    
    scheduler3.schedule_absolute(10, lambda: d.dispose())
    
    scheduler3.start()
    xss = Observable.create(lambda o: _raise('ex4')).repeat(3)
    try:
        return xss.subscribe()
    except RxException:
        pass
def test_Retry_Observable_Throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1).retry()
    xs.subscribe(lambda x: _raise('ex'))

    try:
        return scheduler1.start()
    except RxException:
        pass

    scheduler2 = TestScheduler()
    ys = Observable.throw_exception('ex', scheduler2).retry()
    d = ys.subscribe(on_error=lambda ex: _raise('ex'))

    scheduler2.schedule_absolute(210, lambda: d.dispose())

    scheduler2.start()
    scheduler3 = TestScheduler()
    zs = Observable.return_value(1, scheduler3).retry()
    zs.subscribe(on_completed=lambda: _raise('ex'))

    try:
        return scheduler3.start()
    except RxException:
        pass

    xss = Observable.create(lambda o: _raise('ex')).retry()
    try:
        return xss.subscribe()
    except RxException:
        pass
Example #5
0
    def test_for_each_index_return(self):
        lstX = []
        lstI = []

        def action(x, i):
            lstX.append(x)
            lstI.append(i)

        Observable.return_value(42).to_blocking().for_each(action)
        assert(lstX == [42])
        assert(lstI == [0])
Example #6
0
def test_subject_create():
    _x = [None]
    _ex = [None]
    done = False

    def on_next(x):
        _x[0] = x

    def on_error(ex):
        _ex[0] = ex
    
    def on_completed():
        done = True

    v = Observer(on_next, on_error, on_completed)
    
    o = Observable.return_value(42)

    s = Subject.create(v, o)

    def on_next2(x):
        _x[0] = x
    s.subscribe(on_next2)

    assert(42 == _x[0])
    s.on_next(21)

    e = 'ex'
    s.on_error(e)

    assert(e == _ex[0])

    s.on_completed()
    assert(not done)
def test_return_observer_throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1)
    xs.subscribe(lambda x: _raise('ex'))

    try:
        scheduler1.start()
    except RxException:
        pass

    scheduler2 = TestScheduler()
    ys = Observable.return_value(1, scheduler2)
    ys.subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))

    try:
        scheduler2.start()
    except RxException:
        pass
def test_return_observer_throws():
    scheduler1 = TestScheduler()
    xs = Observable.return_value(1, scheduler1)
    xs.subscribe(lambda x: _raise('ex'))
    
    try:
        scheduler1.start()
    except RxException:
        pass
    
    scheduler2 = TestScheduler()
    ys = Observable.return_value(1, scheduler2)
    ys.subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))

    try:
        scheduler2.start()
    except RxException:
        pass
    def test_connectable_observable_creation(self):
        y = [0]

        s2 = Subject()
        co2 = ConnectableObservable(Observable.return_value(1), s2)

        def on_next(x):
            y[0] = x
        co2.subscribe(on_next=on_next)
        self.assertNotEqual(1, y[0])

        co2.connect()
        self.assertEqual(1, y[0])
Example #10
0
    def test_connectable_observable_creation(self):
        y = [0]

        s2 = Subject()
        co2 = ConnectableObservable(Observable.return_value(1), s2)

        def on_next(x):
            y[0] = x

        co2.subscribe(on_next=on_next)
        self.assertNotEqual(1, y[0])

        co2.connect()
        self.assertEqual(1, y[0])
def test_return_disposed_after_next():
    scheduler = TestScheduler()
    d = SerialDisposable()
    xs = Observable.return_value(42, scheduler)
    results = scheduler.create_observer()

    def action(scheduler, state):
        def on_next(x):
            d.dispose()
            results.on_next(x)
        def on_error(e):
            results.on_error(e)
        def on_completed():
            results.on_completed()

        d.disposable = xs.subscribe(on_next, on_error, on_completed)
        return d.disposable
    
    scheduler.schedule_absolute(100, action)
    scheduler.start()
    results.messages.assert_equal(on_next(101, 42))
def test_return_disposed_after_next():
    scheduler = TestScheduler()
    d = SerialDisposable()
    xs = Observable.return_value(42, scheduler)
    results = scheduler.create_observer()

    def action(scheduler, state):
        def on_next(x):
            d.dispose()
            results.on_next(x)

        def on_error(e):
            results.on_error(e)

        def on_completed():
            results.on_completed()

        d.disposable = xs.subscribe(on_next, on_error, on_completed)
        return d.disposable

    scheduler.schedule_absolute(100, action)
    scheduler.start()
    results.messages.assert_equal(on_next(101, 42))
Example #13
0
            def selector(ys, i):
                def proj(y):
                    return "%s %s" % (i, y)

                return ys.select(proj).concat(Observable.return_value('%s end' % i))
 def factory():
     return Observable.return_value(42, scheduler)
Example #15
0
 def test_for_each_return(self):
     lst = []
     Observable.return_value(42).to_blocking().for_each(lambda x: lst.append(x))
     assert(lst == [42])
Example #16
0
            def mapper(ys, i):
                def proj(y):
                    return "%s %s" % (i, y)

                return ys.map(proj).concat(
                    Observable.return_value('%s end' % i))
Example #17
0
            def selector(ys, i):
                def proj(y):
                    return "%s %s" % (i, y)

                return ys.select(proj).concat(
                    Observable.return_value('%s end' % i))
 def factory():
     return Observable.return_value(42, scheduler)