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")
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"], [])
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")
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)
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'))
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"] == []