1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 from elisa.core.utils import defer
22 from elisa.core.utils.defer import Deferred
23 from twisted.internet import defer as twisted_defer
24
25 from twisted.trial import unittest
26
28
30
31 self.failUnless(hasattr(Deferred(), 'cancel'))
32 self.failUnless(hasattr(defer.Deferred(), 'cancel'))
33
35
36 l = []
37 dfr = defer.succeed('Yeah!')
38 self.failUnless(hasattr(dfr, 'cancel'))
39 dfr.addCallback(l.append)
40 self.assertEquals(l[0], "Yeah!")
41
43
44 l = []
45 dfr = defer.fail(Exception())
46 self.failUnless(hasattr(dfr, 'cancel'))
47 dfr.addErrback(l.append)
48 self.assertEquals(l[0].type, Exception)
49
50 def error_function():
51 something
52
53 dfr = None
54
55 try:
56 error_function()
57 except:
58 dfr = defer.fail()
59
60 self.failUnless(hasattr(dfr, 'cancel'))
61 dfr.addErrback(l.append)
62 self.assertEquals(l[1].type, NameError)
63
65
66 l = []
67
68 dfr = defer.execute( lambda x,y,z,foo: (x,y,z,foo) ,
69 'one', 'two', 'three', foo='bar')
70 self.failUnless(hasattr(dfr, 'cancel'))
71 dfr.addCallback(l.append)
72 self.assertEquals(l[0], ('one', 'two', 'three', 'bar'))
73
74
75 dfr = defer.execute( lambda x: y,
76 'yeah', 'yeah', 'yeah', cool=True)
77 self.failUnless(hasattr(dfr, 'cancel'))
78 dfr.addErrback(l.append)
79 self.assertEquals(len(l), 2)
80
81
96
98
99
100 msg = "We miss %s"
101 for item in twisted_defer.__all__:
102 self.assertTrue(hasattr(defer, item), msg % item)
103
104
106 """
107 Test the behaviour of deferred_accumulator in various cases.
108 """
109 dfr1 = defer.succeed(None)
110 dfr2 = defer.succeed(None)
111 dfr3 = defer.succeed(None)
112
113 tests = [
114 ([None, None, None], (True, [])),
115 ([None, None, 3 ], (True, [])),
116 ([None, None, dfr1], (True, [dfr1])),
117 ([None, [], None], (True, [])),
118 ([None, [], 3 ], (True, [])),
119 ([None, [], dfr1], (True, [dfr1])),
120 ([None, [dfr1], None], (True, [dfr1])),
121 ([None, [dfr1], 3 ], (True, [dfr1])),
122 ([None, [dfr1], dfr2], (True, [dfr1, dfr2])),
123 ]
124 for (args, result) in tests:
125 self.assertEquals(defer.deferred_accumulator(*args), result)
126