blob: d7ca3ec51a7d1ef6eba87ed96de7a93f5db97ea4 [file] [log] [blame] [edit]
# -*- coding: utf-8 -*-
from mock import Mock
import pytest
from pyee import EventEmitter
from pyee.cls import evented, on
@evented
class EventedFixture:
def __init__(self):
self.call_me = Mock()
@on("event")
def event_handler(self, *args, **kwargs):
self.call_me(self, *args, **kwargs)
_custom_event_emitter = EventEmitter()
@evented
class CustomEmitterFixture:
def __init__(self):
self.call_me = Mock()
self.event_emitter = _custom_event_emitter
@on("event")
def event_handler(self, *args, **kwargs):
self.call_me(self, *args, **kwargs)
class InheritedFixture(EventedFixture):
pass
@pytest.mark.parametrize(
"cls", [EventedFixture, CustomEmitterFixture, InheritedFixture]
)
def test_evented_decorator(cls):
inst = cls()
inst.event_emitter.emit("event", "emitter is emitted!")
inst.call_me.assert_called_once_with(inst, "emitter is emitted!")
_custom_event_emitter.remove_all_listeners()