def test_observer_checked_reentrant_completed(): msg = "Re-entrancy detected" n = [0] def on_next(x): assert(False) def on_error(ex): assert(False) def on_completed(): n[0] += 1 try: o.on_next(9) except Exception as e: print(str(e)) assert str(e) == msg try: o.on_error(Exception('error')) except Exception as e: assert str(e) == msg try: o.on_completed() except Exception as e: assert str(e) == msg o = AnonymousObserver(on_next, on_error, on_completed).checked() o.on_completed() assert(1 == n[0])
def test_create_on_next_throw_close2(): ex = 'ex' next = [True] error = [False] completed = [False] def on_next(x): assert(42 == x) next[0] = True def on_error(e): assert(ex == e) error[0] = True def on_completed(): completed[0] = True res = AnonymousObserver(on_next, on_error, on_completed) res.on_next(42) assert(next[0]) assert(not error[0]) assert(not completed[0]) res.on_error(ex) assert(not completed[0]) assert(error[0])
def test_create_on_next_close_has_error(): e_ = None ex = 'ex' next = [False] completed = [False] def on_next(x): assert(42 == x) next[0] = True def on_completed(): completed[0] = True res = AnonymousObserver(on_next, None, on_completed) res.on_next(42) assert(next[0]) assert(not completed[0]) try: res.on_error(ex) assert(False) except Exception as e: e_ = e.args[0] assert(ex == e_) assert(not completed[0])
def test_observer_checked_reentrant_completed(): msg = "Re-entrancy detected" n = [0] def on_next(x): assert (False) def on_error(ex): assert (False) def on_completed(): n[0] += 1 try: o.on_next(9) except Exception as e: print(str(e)) assert str(e) == msg try: o.on_error(Exception('error')) except Exception as e: assert str(e) == msg try: o.on_completed() except Exception as e: assert str(e) == msg o = AnonymousObserver(on_next, on_error, on_completed).checked() o.on_completed() assert (1 == n[0])
def test_observer_checked_already_terminated_error(): m, n = [0], [0] def on_next(x): m[0] += 1 def on_error(x): n[0] += 1 def on_completed(): assert (False) o = AnonymousObserver(on_next, on_error, on_completed).checked() o.on_next(1) o.on_next(2) o.on_error(Exception('error')) try: o.on_completed() except Exception: pass try: o.on_error(Exception('error')) except Exception: pass assert (2 == m[0]) assert (1 == n[0])
def test_observer_checked_already_terminated_error(): m, n = [0], [0] def on_next(x): m[0] += 1 def on_error(x): n[0] += 1 def on_completed(): assert(False) o = AnonymousObserver(on_next, on_error, on_completed).checked() o.on_next(1) o.on_next(2) o.on_error(Exception('error')) try: o.on_completed() except Exception: pass try: o.on_error(Exception('error')) except Exception: pass assert(2 == m[0]) assert(1 == n[0])
def test_create_on_next(): next = [False] def on_next(x): assert(42 == x) next[0] = True res = AnonymousObserver(on_next) res.on_next(42) assert(next[0]) return res.on_completed()
def test_create_on_next(): next = [False] def on_next(x): assert (42 == x) next[0] = True res = AnonymousObserver(on_next) res.on_next(42) assert (next[0]) return res.on_completed()
def subscribe_(self, on_next=None, on_error=None, on_completed=None, scheduler=None): observer = AnonymousObserver(on_next, on_error, on_completed) return self.subscribe(observer, scheduler)
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 = AnonymousObserver(on_next, on_error, on_completed) o = rx.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 subscribe(self, on_next=None, on_error=None, on_completed=None, observer=None): # Be forgiving and accept an un-named observer as first parameter if isinstance(on_next, Observer): observer = on_next elif not observer: observer = AnonymousObserver(on_next, on_error, on_completed) return self._subscribe_core(observer)
def test_create_on_next_has_error(): ex = 'ex' next = [False] _e = None def on_next(x): assert(42 == x) next[0] = True res = AnonymousObserver(on_next) res.on_next(42) assert(next[0]) try: res.on_error(ex) assert(False) except Exception as e: e_ = e.args[0] assert(ex == e_)
def test_create_on_next_on_error_on_completed2(): ex = 'ex' next = [True] error = [False] completed = [False] def on_next(x): assert (42 == x) next[0] = True def on_error(e): assert (ex == e) error[0] = True def on_completed(): completed[0] = True res = AnonymousObserver(on_next, on_error, on_completed) res.on_next(42) assert (next[0]) assert (not error[0]) assert (not completed[0]) res.on_error(ex) assert (not completed[0]) assert (error[0])
def test_create_on_next_on_completed_has_error(): e_ = None ex = 'ex' next = [False] completed = [False] def on_next(x): assert (42 == x) next[0] = True def on_completed(): completed[0] = True res = AnonymousObserver(on_next, None, on_completed) res.on_next(42) assert (next[0]) assert (not completed[0]) try: res.on_error(ex) assert (False) except Exception as e: e_ = e.args[0] assert (ex == e_) assert (not completed[0])
def test_create_on_next_on_error(): ex = 'ex' next = [True] error = [False] def on_next(x): assert(42 == x) next[0] = True def on_error(e): assert(ex == e) error[0] = True res = AnonymousObserver(on_next, on_error) res.on_next(42) assert(next[0]) assert(not error[0]) res.on_error(ex) assert(error[0])
def test_create_on_next_on_completed(): next = [False] completed = [False] def on_next(x): assert(42 == x) next[0] = True return next[0] def on_completed(): completed[0] = True return completed[0] res = AnonymousObserver(on_next, None, on_completed) res.on_next(42) assert(next[0]) assert(not completed[0]) res.on_completed() assert(completed[0])
def test_create_on_next_has_error(): ex = 'ex' next = [False] _e = None def on_next(x): assert (42 == x) next[0] = True res = AnonymousObserver(on_next) res.on_next(42) assert (next[0]) try: res.on_error(ex) assert (False) except Exception as e: e_ = e.args[0] assert (ex == e_)
def test_create_on_next_on_completed(): next = [False] completed = [False] def on_next(x): assert (42 == x) next[0] = True return next[0] def on_completed(): completed[0] = True return completed[0] res = AnonymousObserver(on_next, None, on_completed) res.on_next(42) assert (next[0]) assert (not completed[0]) res.on_completed() assert (completed[0])