Exemple #1
0
def test_queued_messages_are_logged_as_deadletters_after_stop(defer):
    node = DummyNode()
    defer(node.stop)
    deadletter_event_emitted = Events.consume_one(DeadLetter)
    a = node.spawn(Actor)
    a.stop()
    a << 'dummy'
    eq_(deadletter_event_emitted.get(), DeadLetter(a, 'dummy', sender=None))
Exemple #2
0
def test_queued_messages_are_logged_as_deadletters_after_stop(defer):
    node = DummyNode()
    defer(node.stop)
    deadletter_event_emitted = Events.consume_one(DeadLetter)
    a = node.spawn(Actor)
    a.stop()
    a << 'dummy'
    eq_(deadletter_event_emitted.get(), DeadLetter(a, 'dummy', sender=None))
Exemple #3
0
def expect_event_not_emitted(ev, during=0.001):
    result = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    yield
    sleep(during)
    ok_(
        not result.ready() or (not isinstance(result.get(), ev) if isinstance(
            ev, type) else result.get() != ev),
        "Event %s should not have been emitted" %
        (" of type %s" % (ev.__name__, ) if isinstance(ev, type) else ev, ))
Exemple #4
0
def test_stop_and_kill_messages_to_dead_actorrefs_are_discarded(defer):
    node = DummyNode()
    defer(node.stop)
    a = node.spawn(Actor)
    a.stop()
    for event in ['_stop', '_kill']:
        d = Events.consume_one(DeadLetter)
        a << event
        ok_(not d.ready(), "message %r sent to a dead actor should be discarded" % (event,))
Exemple #5
0
def test_stop_and_kill_messages_to_dead_actorrefs_are_discarded(defer):
    node = DummyNode()
    defer(node.stop)
    a = node.spawn(Actor)
    a.stop()
    for event in ['_stop', '_kill']:
        d = Events.consume_one(DeadLetter)
        a << event
        ok_(not d.ready(),
            "message %r sent to a dead actor should be discarded" % (event, ))
Exemple #6
0
def expect_failure(exc, message=None, timeout=None):
    with assert_raises(exc, message=message) as basket:
        err = Events.consume_one(Error)
        yield basket
        try:
            _, exc, tb = err.get(timeout=timeout)
        except Timeout:
            pass
        else:
            raise exc, None, tb
Exemple #7
0
def expect_failure(exc, message=None, timeout=None):
    with assert_raises(exc, message=message) as basket:
        err = Events.consume_one(Error)
        yield basket
        try:
            _, exc, tb = err.get(timeout=timeout)
        except Timeout:
            pass
        else:
            raise exc, None, tb
Exemple #8
0
def test_termination_message_to_dead_actor_is_discarded(defer):
    class Parent(Actor):
        def pre_start(self):
            self.watch(self.spawn(Actor)).stop()
            self.stop()
    d = Events.consume_one(DeadLetter)
    node = DummyNode()
    defer(node.stop)
    node.spawn(Parent)
    idle()
    ok_(not d.ready())
Exemple #9
0
def assert_event_not_emitted(ev):
    d = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    try:
        yield
    except:
        raise
    else:
        assert not d.called or deferred_result(d) != ev, \
            "Event %s should not have been emitted" % (
                (" of type %s" % (ev.__name__,)) if isinstance(ev, type) else ev,)
    finally:
        d.addErrback(lambda f: f.trap(CancelledError)).cancel()
Exemple #10
0
def test_termination_message_to_dead_actor_is_discarded(defer):
    class Parent(Actor):
        def pre_start(self):
            self.watch(self.spawn(Actor)).stop()
            self.stop()

    d = Events.consume_one(DeadLetter)
    node = DummyNode()
    defer(node.stop)
    node.spawn(Parent)
    idle()
    ok_(not d.ready())
Exemple #11
0
def expect_one_event(ev, timeout=None):
    result = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    yield
    try:
        result = result.get(timeout=timeout)
    except Timeout:
        ok_(False,
            "Event %r should have been emitted but was not" % (ev,)
            if not isinstance(ev, type) else
            "Event of type %s should have been emitted but was not" % (ev.__name__,))
    if isinstance(ev, type):
        ok_(isinstance(result, ev), "Event of type %s.%s should have been emitted but was not" % (ev.__module__, ev.__name__))
    else:
        eq_(result, ev, "Event %r should have been emitted but %s was" % (ev, result))
Exemple #12
0
def test_watching_self_is_noop_and_returns_self(defer):
    class MyActor(Actor):
        def pre_start(self):
            eq_(self.watch(self.ref), self.ref)

        def receive(self, message):
            ok_(False)

    node = DummyNode()
    defer(node.stop)
    a = node.spawn(MyActor)
    dead_letter_emitted = Events.consume_one(DeadLetter)
    a.stop()
    idle()
    ok_(not dead_letter_emitted.ready())
Exemple #13
0
def test_watching_self_is_noop_and_returns_self(defer):
    class MyActor(Actor):
        def pre_start(self):
            eq_(self.watch(self.ref), self.ref)

        def receive(self, message):
            ok_(False)

    node = DummyNode()
    defer(node.stop)
    a = node.spawn(MyActor)
    dead_letter_emitted = Events.consume_one(DeadLetter)
    a.stop()
    idle()
    ok_(not dead_letter_emitted.ready())
Exemple #14
0
def assert_one_event(ev):
    d = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    try:
        yield
    except:
        raise
    else:
        assert d.called, ("Event %r should have been emitted but was not" % (ev,)
                          if not isinstance(ev, type) else
                          "Event of type %s should have been emitted but was not" % (ev.__name__,))
        result = deferred_result(d)
        if isinstance(ev, type):
            assert isinstance(result, ev), "Event of type %s.%s should have been emitted but was not" % (ev.__module__, ev.__name__)
        else:
            assert result == ev, "Event %r should have been emitted but %s was" % (ev, result)
    finally:
        d.addErrback(lambda f: f.trap(CancelledError)).cancel()
Exemple #15
0
def expect_one_event(ev, timeout=None):
    result = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    yield
    try:
        result = result.get(timeout=timeout)
    except Timeout:
        ok_(
            False, "Event %r should have been emitted but was not" %
            (ev, ) if not isinstance(ev, type) else
            "Event of type %s should have been emitted but was not" %
            (ev.__name__, ))
    if isinstance(ev, type):
        ok_(
            isinstance(result, ev),
            "Event of type %s.%s should have been emitted but was not" %
            (ev.__module__, ev.__name__))
    else:
        eq_(result, ev,
            "Event %r should have been emitted but %s was" % (ev, result))
Exemple #16
0
def expect_event_not_emitted(ev, during=0.001):
    result = Events.consume_one(type(ev) if not isinstance(ev, type) else ev)
    yield
    sleep(during)
    ok_(not result.ready() or (not isinstance(result.get(), ev) if isinstance(ev, type) else result.get() != ev),
        "Event %s should not have been emitted" % (" of type %s" % (ev.__name__,) if isinstance(ev, type) else ev,))