Example #1
0
def test_no_event_for_trigger():
    """test exception raising for not existing events"""
    obs = Observable()

    assert not obs.trigger("no_existing_event")

    with pytest.raises(EventNotFound):
        obs.off("no_existing_event")
Example #2
0
def test_no_event_for_trigger():
    """test exception raising for not existing events"""
    obs = Observable()

    assert not obs.trigger("no_existing_event")

    with pytest.raises(EventNotFound):
        obs.off("no_existing_event")
Example #3
0
def test_off():
    """test obs.off method"""
    obs = Observable()
    nose.assert_false(obs.events)

    @obs.on("on_test")
    def on_test():
        pass

    nose.assert_equals(obs.events['on_test'], [on_test])
    nose.assert_true(obs.trigger("on_test"))
    obs.off("on_test", on_test)
    nose.assert_equals(obs.events['on_test'],[])

    obs.off()
    nose.assert_false(obs.events)

    @obs.on("more_than_one_event")
    def func1():
        pass

    @obs.on("more_than_one_event")
    def func2():
        pass

    @obs.on("more_than_one_event")
    def func3():
        pass

    nose.assert_equals(obs.events["more_than_one_event"], [func1, func2, func3])
    obs.off("more_than_one_event", func2)
    nose.assert_equals(obs.events["more_than_one_event"], [func1, func3])
    obs.off("more_than_one_event")
    nose.assert_equals(obs.events["more_than_one_event"], [])
Example #4
0
def test_off_multiple_handlers():
    """test event unregistering with the off method and multiple handlers"""
    obs = Observable()

    results = []

    def some_test(*args, **kw):
        results.append(1)

    def some_test_2(*args, **kw):
        results.append(2)

    obs.on("some_test", some_test, some_test_2)
    assert len(obs._events["some_test"]) == 2

    obs.off("some_test", some_test, some_test_2)
    assert len(obs._events["some_test"]) == 0
    assert not obs.trigger("some_test")
Example #5
0
def test_off_multiple_handlers():
    """test event unregistering with the off method and multiple handlers"""
    obs = Observable()

    results = []

    def some_test(*args, **kw):
        results.append(1)

    def some_test_2(*args, **kw):
        results.append(2)

    obs.on("some_test", some_test, some_test_2)
    assert len(obs._events["some_test"]) == 2

    obs.off("some_test", some_test, some_test_2)
    assert len(obs._events["some_test"]) == 0
    assert not obs.trigger("some_test")
Example #6
0
def test_off_exceptions():
    """test exception raising in the off method"""
    obs = Observable()

    with pytest.raises(EventNotFound):
        obs.off("non_existing_event")

    @obs.on("some_event")
    def some_assigned_handler():
        pass

    def some_non_assigned_handler():
        pass

    assert some_assigned_handler in obs._events["some_event"]
    assert some_non_assigned_handler not in obs._events["some_event"]

    with pytest.raises(HandlerNotFound):
        obs.off("some_event", some_non_assigned_handler)
Example #7
0
def test_off_exceptions():
    """test exception raising in the off method"""
    obs = Observable()

    with pytest.raises(EventNotFound):
        obs.off("non_existing_event")

    @obs.on("some_event")
    def some_assigned_handler():
        pass

    def some_non_assigned_handler():
        pass

    assert some_assigned_handler in obs._events["some_event"]
    assert some_non_assigned_handler not in obs._events["some_event"]

    with pytest.raises(HandlerNotFound):
        obs.off("some_event", some_non_assigned_handler)
Example #8
0
def test_off_multiple_handlers():
    """test event unregistering with the off method and multiple handlers"""

    obs = Observable()
    nose.assert_false(obs.events)

    results = []

    def some_test(*args, **kw):
        results.append(1)

    def some_test_2(*args, **kw):
        results.append(2)

    obs.on('some_test', some_test, some_test_2)
    nose.assert_equals(len(obs.events['some_test']), 2)

    obs.off('some_test', some_test, some_test_2)
    nose.assert_equals(len(obs.events['some_test']), 0)

    nose.assert_false(obs.trigger('some_test'))
Example #9
0
def test_off():
    """test obs.off method"""
    obs = Observable()

    @obs.on("on_test")
    def on_test():
        pass

    assert obs._events["on_test"] == [on_test]
    assert obs.trigger("on_test")

    obs.off("on_test", on_test)

    assert obs._events["on_test"] == []

    obs.off()

    assert not obs._events

    @obs.on("more_than_one_event")
    def func1():
        pass

    @obs.on("more_than_one_event")
    def func2():
        pass

    @obs.on("more_than_one_event")
    def func3():
        pass

    assert obs._events["more_than_one_event"] == [func1, func2, func3]
    obs.off("more_than_one_event", func2)
    assert obs._events["more_than_one_event"] == [func1, func3]
    obs.off("more_than_one_event")
    assert obs._events["more_than_one_event"] == []
Example #10
0
def test_off():
    """test obs.off method"""
    obs = Observable()

    @obs.on("on_test")
    def on_test():
        pass

    assert obs._events["on_test"] == [on_test]
    assert obs.trigger("on_test")

    obs.off("on_test", on_test)

    assert obs._events["on_test"] == []

    obs.off()

    assert not obs._events

    @obs.on("more_than_one_event")
    def func1():
        pass

    @obs.on("more_than_one_event")
    def func2():
        pass

    @obs.on("more_than_one_event")
    def func3():
        pass

    assert obs._events["more_than_one_event"] == [func1, func2, func3]
    obs.off("more_than_one_event", func2)
    assert obs._events["more_than_one_event"] == [func1, func3]
    obs.off("more_than_one_event")
    assert obs._events["more_than_one_event"] == []