Exemplo n.º 1
0
 def test_select_throws(self):
     try:
         Observable.return_value(1) \
             .select(lambda x, y: x) \
             .subscribe(lambda x: _raise("ex"))
     except RxException:
         pass
 
     try:
         Observable.throw_exception('ex') \
             .select(lambda x, y: x) \
             .subscribe(on_error=lambda ex: _raise(ex))
     except RxException:
         pass
 
     try:
         Observable.empty() \
             .select(lambda x, y: x) \
             .subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))
     except RxException:
         pass
 
     def subscribe(observer):
         _raise('ex')
 
     try:
         Observable.create(subscribe) \
             .select(lambda x: x) \
             .subscribe()
     except RxException:
         pass
Exemplo n.º 2
0
    def test_repeat_observable_repeat_count_throws(self):
        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
Exemplo n.º 3
0
def test_select_throws():
    try:
        Observable.return_value(1) \
            .select(lambda x, y: x) \
            .subscribe(lambda x: _raise("ex"))
    except RxException:
        pass

    try:
        Observable.throw_exception('ex') \
            .select(lambda x, y: x) \
            .subscribe(on_error=lambda ex: _raise(ex))
    except RxException:
        pass

    try:
        Observable.empty() \
            .select(lambda x, y: x) \
            .subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))
    except RxException:
        pass

    def subscribe(observer):
        _raise('ex')

    try:
        Observable.create(subscribe) \
            .select(lambda x: x).dump() \
            .subscribe()
    except RxException:
        pass
Exemplo n.º 4
0
    def test_retry_observable_throws(self):
        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
Exemplo n.º 5
0
    def test_repeat_observable_repeat_count_throws(self):
        scheduler1 = TestScheduler()
        xs = Observable.return_value(1, scheduler1).repeat(3)
        xs.subscribe(lambda x: _raise('ex'))
        
        with self.assertRaises(RxException):
            scheduler1.start()
        
        scheduler2 = TestScheduler()
        ys = Observable.throw_exception('ex1', scheduler2).repeat(3)
        ys.subscribe(on_error=lambda ex: _raise('ex2'))
        
        with self.assertRaises(RxException):
            scheduler2.start()
        
        scheduler3 = TestScheduler()
        zs = Observable.return_value(1, scheduler3).repeat(100)
        d = zs.subscribe(on_completed=lambda: _raise('ex3'))
        
        scheduler3.schedule_absolute(10, lambda sc, st: d.dispose())
        scheduler3.start()

        xss = Observable.create(lambda o: _raise('ex4')).repeat(3)
        with self.assertRaises(RxException):
            xss.subscribe()
Exemplo n.º 6
0
    def test_return_observer_throws(self):
        scheduler1 = TestScheduler()
        xs = Observable.return_value(1, scheduler1)
        xs.subscribe(lambda x: _raise('ex'))

        self.assertRaises(RxException, scheduler1.start)
        
        scheduler2 = TestScheduler()
        ys = Observable.return_value(1, scheduler2)
        ys.subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))

        self.assertRaises(RxException, scheduler2.start)
        
Exemplo n.º 7
0
 def test_select_with_index_throws(self):
     try:
         return Observable.return_value(1) \
             .select(lambda x, index: x) \
             .subscribe(lambda x: _raise('ex'))
     except RxException:
         pass
 
     try:
         return Observable.throw_exception('ex') \
             .select(lambda x, index: x) \
             .subscribe(lambda x: x, lambda ex: _raise(ex))
     except RxException:
         pass
 
     try:
         return Observable.empty() \
             .select(lambda x, index: x) \
             .subscribe(lambda x: x, lambda ex: _, lambda : _raise('ex'))
     except RxException:
         pass
 
     try:
         return Observable.create(lambda o: _raise('ex')) \
             .select(lambda x, index: x) \
             .subscribe()
     except RxException:
         pass
Exemplo n.º 8
0
def repeat(cls, value=None, repeat_count=None, scheduler=None):
    """Generates an observable sequence that repeats the given element the
    specified number of times, using the specified scheduler to send out
    observer messages.

    1 - res = rx.Observable.repeat(42)
    2 - res = rx.Observable.repeat(42, 4)
    3 - res = rx.Observable.repeat(42, 4, Rx.Scheduler.timeout)
    4 - res = rx.Observable.repeat(42, None, Rx.Scheduler.timeout)

    Keyword arguments:
    value -- Element to repeat.
    repeat_count -- [Optional] Number of times to repeat the element. If not
        specified, repeats indefinitely.
    scheduler -- Scheduler to run the producer loop on. If not specified,
        defaults to ImmediateScheduler.

    Returns an observable sequence that repeats the given element the
    specified number of times."""

    scheduler = scheduler or current_thread_scheduler
    if repeat_count == -1:
        repeat_count = None

    xs = Observable.return_value(value, scheduler)
    return xs.repeat(repeat_count)
Exemplo n.º 9
0
def test_select_with_index_throws():
    try:
        return Observable.return_value(1) \
            .select(lambda x, index: x) \
            .subscribe(lambda x: _raise('ex'))
    except RxException:
        pass

    try:
        return Observable.throw_exception('ex') \
            .select(lambda x, index: x) \
            .subscribe(lambda x: x, lambda ex: _raise(ex))
    except RxException:
        pass

    try:
        return Observable.empty() \
            .select(lambda x, index: x) \
            .subscribe(lambda x: x, lambda ex: _, lambda : _raise('ex'))
    except RxException:
        pass

    try:
        return Observable.create(lambda o: _raise('ex')) \
            .select(lambda x, index: x) \
            .subscribe()
    except RxException:
        pass
Exemplo n.º 10
0
        def go():
            source = Observable.return_value(42)
            future = source.to_future(asyncio.Future)

            def done(future):
                try:
                    value = future.result()
                except Exception as ex:
                    success[1] = False
                else:
                    success[0] = value == 42

            future.add_done_callback(done)
Exemplo n.º 11
0
        def go():
            source = Observable.return_value(42)
            future = source.to_future(asyncio.Future)

            def done(future):
                try:
                    value = future.result()
                except Exception as ex:
                    success[1] = False
                else:
                    success[0] = value == 42

            future.add_done_callback(done)
Exemplo n.º 12
0
    def test_retry_observable_throws(self):
        scheduler1 = TestScheduler()
        xs = Observable.return_value(1, scheduler1).retry()
        xs.subscribe(lambda x: _raise('ex'))
        
        self.assertRaises(RxException, scheduler1.start)
        
        scheduler2 = TestScheduler()
        ys = Observable.throw_exception('ex', scheduler2).retry()
        d = ys.subscribe(on_error=lambda ex: _raise('ex'))
        
        scheduler2.schedule_absolute(210, lambda sc, st: d.dispose())
        
        scheduler2.start()
        scheduler3 = TestScheduler()
        zs = Observable.return_value(1, scheduler3).retry()
        zs.subscribe(on_completed=lambda: _raise('ex'))
        
        self.assertRaises(RxException, scheduler3.start)

        xss = Observable.create(lambda o: _raise('ex')).retry()
        self.assertRaises(Exception, xss.subscribe)
Exemplo n.º 13
0
    def test_select_throws(self):
        with self.assertRaises(RxException):
            Observable.return_value(1) \
                .select(lambda x, y: x) \
                .subscribe(lambda x: _raise("ex"))

        with self.assertRaises(RxException):
            Observable.throw_exception('ex') \
                .select(lambda x, y: x) \
                .subscribe(on_error=lambda ex: _raise(ex))

        with self.assertRaises(RxException):
            Observable.empty() \
                .select(lambda x, y: x) \
                .subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))

        def subscribe(observer):
            _raise('ex')

        with self.assertRaises(RxException):
            Observable.create(subscribe) \
                .select(lambda x: x) \
                .subscribe()
Exemplo n.º 14
0
 def test_select_throws(self):
     with self.assertRaises(RxException):
         Observable.return_value(1) \
             .map(lambda x, y: x) \
             .subscribe(lambda x: _raise("ex"))
     
     with self.assertRaises(RxException):
         Observable.throw_exception('ex') \
             .map(lambda x, y: x) \
             .subscribe(on_error=lambda ex: _raise(ex))
     
     with self.assertRaises(RxException):
         Observable.empty() \
             .map(lambda x, y: x) \
             .subscribe(lambda x: x, lambda ex: ex, lambda: _raise('ex'))
     
     def subscribe(observer):
         _raise('ex')
 
     with self.assertRaises(RxException):
         Observable.create(subscribe) \
             .map(lambda x: x) \
             .subscribe()
Exemplo n.º 15
0
    def test_select_with_index_throws(self):
        with self.assertRaises(RxException):
            return Observable.return_value(1) \
                .select(lambda x, index: x) \
                .subscribe(lambda x: _raise('ex'))

        with self.assertRaises(RxException):
            return Observable.throw_exception('ex') \
                .select(lambda x, index: x) \
                .subscribe(lambda x: x, lambda ex: _raise(ex))

        with self.assertRaises(RxException):
            return Observable.empty() \
                .select(lambda x, index: x) \
                .subscribe(lambda x: x, lambda ex: _, lambda : _raise('ex'))

        with self.assertRaises(RxException):
            return Observable.create(lambda o: _raise('ex')) \
                .select(lambda x, index: x) \
                .subscribe()
Exemplo n.º 16
0
 def test_select_with_index_throws(self):
     with self.assertRaises(RxException):
         return Observable.return_value(1) \
             .map(lambda x, index: x) \
             .subscribe(lambda x: _raise('ex'))
     
     with self.assertRaises(RxException):
         return Observable.throw_exception('ex') \
             .map(lambda x, index: x) \
             .subscribe(lambda x: x, lambda ex: _raise(ex))
     
     with self.assertRaises(RxException):
         return Observable.empty() \
             .map(lambda x, index: x) \
             .subscribe(lambda x: x, lambda ex: _, lambda : _raise('ex'))
     
     with self.assertRaises(RxException):
         return Observable.create(lambda o: _raise('ex')) \
             .map(lambda x, index: x) \
             .subscribe()
Exemplo n.º 17
0
    def test_return_disposed_after_next(self):
        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))
Exemplo n.º 18
0
 def factory():
     return Observable.return_value(42, scheduler)