Exemplo n.º 1
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])
Exemplo n.º 2
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])
Exemplo n.º 3
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])
Exemplo n.º 4
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])
Exemplo n.º 5
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])
Exemplo n.º 6
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])
Exemplo n.º 7
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()
Exemplo n.º 8
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()
Exemplo n.º 9
0
 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)
Exemplo n.º 10
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 = 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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
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_)
Exemplo n.º 13
0
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])
Exemplo n.º 14
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])
Exemplo n.º 15
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])
Exemplo n.º 16
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])
Exemplo n.º 17
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_)
Exemplo n.º 18
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])