Cleanup events.

- moves tests to separate test_events file
- cleanup base Event class
main
Olivier Mangin 12 years ago
parent 19ca6c8ac2
commit 05ab7ec32a

@ -2,12 +2,8 @@ _listener = {}
class Event(object): class Event(object):
def __init__(self, string): """Base event that can be sent to listeners.
"""This is an example of simple event that can be raised
Inherit from this class and redefine whatever you need,
except the send funtion
""" """
self.string = string
def send(self): def send(self):
""" This function sends the instance of the class, i.e. the event """ This function sends the instance of the class, i.e. the event
@ -36,46 +32,3 @@ class RemoveEvent(Event):
self.config = config self.config = config
self.ui = ui self.ui = ui
self.citekey = citekey self.citekey = citekey
if __name__ == "__main__":
class TestEvent(Event):
def print_one(self):
print 'one'
@TestEvent.listen(12, 15)
def Display(TestEventInstance, nb1, nb2):
print TestEventInstance.string, nb1, nb2
@TestEvent.listen()
def Helloword(TestEventInstance):
print 'Helloword'
@TestEvent.listen()
def PrintIt(TestEventInstance):
TestEventInstance.print_one()
class AddEvent(Event):
def __init__(self):
pass
def add(self, a, b):
return a + b
@AddEvent.listen()
def DoIt(AddEventInstance):
print AddEventInstance.add(17, 25)
# using the callback system
myevent = TestEvent('abcdefghijklmnopqrstuvwxyz')
myevent.send() # this one call three function
addevent = AddEvent()
addevent.send()
# but also work without the event raising system!
Display(myevent, 12, 15)
Helloword(myevent)
PrintIt(myevent)
DoIt(addevent)

@ -0,0 +1,65 @@
from unittest import TestCase
from papers.events import Event
_output = None
class TestEvent(Event):
def __init__(self, string):
self.string = string
def print_one(self):
_output.append('one')
class AddEvent(Event):
def __init__(self):
pass
def add(self, a, b):
return a + b
@TestEvent.listen(12, 15)
def display(TestEventInstance, nb1, nb2):
_output.append("%s %s %s"
% (TestEventInstance.string, nb1, nb2))
@TestEvent.listen()
def hello_word(TestEventInstance):
_output.append('Helloword')
@TestEvent.listen()
def print_it(TestEventInstance):
TestEventInstance.print_one()
@AddEvent.listen()
def do_it(AddEventInstance):
_output.append(AddEventInstance.add(17, 25))
class TestEvents(TestCase):
def setUp(self):
global _output
_output = []
def test_listen_TestEvent(self):
# using the callback system
myevent = TestEvent('abcdefghijklmnopqrstuvwxyz')
myevent.send() # this one call three function
correct = ['abcdefghijklmnopqrstuvwxyz 12 15',
'Helloword',
'one']
self.assertEquals(_output, correct)
def test_listen_AddEvent(self):
addevent = AddEvent()
addevent.send()
correct = [42]
self.assertEquals(_output, correct)
Loading…
Cancel
Save