Package elisa :: Package core :: Package tests :: Module test_signal
[hide private]
[frames] | no frames]

Source Code for Module elisa.core.tests.test_signal

 1  # Elisa - Home multimedia server 
 2  # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 
 3  # All rights reserved. 
 4  # 
 5  # This file is available under one of two license agreements. 
 6  # 
 7  # This file is licensed under the GPL version 3. 
 8  # See "LICENSE.GPL" in the root of this distribution including a special 
 9  # exception to use Elisa with Fluendo's plugins. 
10  # 
11  # The GPL part of Elisa is also available under a commercial licensing 
12  # agreement from Fluendo. 
13  # See "LICENSE.Elisa" in the root directory of this distribution package 
14  # for details on that license. 
15   
16  from twisted.trial import unittest 
17  from elisa.core.tests.elisa_test_case import ElisaTestCase 
18  from elisa.core.utils import signal 
19   
20 -class TestSignal(ElisaTestCase):
21
22 - def test_emit(self):
23 """ 24 Create a signal, connect a function to it and emit it. 25 """ 26 def test(number, text): 27 self.assertEquals(number, 42) 28 self.assertEquals(text, "boudiou") 29 test.called = True
30 31 test.called = False 32 33 signal1 = signal.Signal('test-signal',int, object) 34 signal1.connect(test) 35 36 signal1.emit(42, "boudiou") 37 self.assertEquals(test.called, True)
38
39 - def test_wrong_argument(self):
40 def test(number, text, foo=0): 41 self.assertEquals(number, 42) 42 self.assertEquals(text, "boudiou") 43 self.assertEquals(foo, 0) 44 test.called = True
45 46 test.called = False 47 48 signal1 = signal.Signal('test-signal', int, object, foo=int) 49 signal1.connect(test) 50 51 signal1.emit(42, "boudiou") 52 self.assertEquals(test.called, True) 53 54 self.assertRaises(signal.WrongArgument, signal1.emit, 42, "bar", 55 foo="bar") 56
57 - def test_non_callable(self):
58 signal1 = signal.Signal('test-signal', int, object) 59 self.assertRaises(TypeError, signal1.connect, object())
60
61 - def test_disconnect(self):
62 def test(number, text): 63 self.assertEquals(number, 42) 64 self.assertEquals(text, "boudiou") 65 test.called = True
66 67 test.called = False 68 69 signal1 = signal.Signal('test-signal',int, object) 70 signal1.connect(test) 71 signal1.disconnect(test) 72 73 signal1.emit(42, "boudiou") 74 self.assertEquals(test.called, False) 75