1
2
3
4 """
5 Tests for sparked.monitors.*
6
7 Maintainer: Arjan Scherpenisse
8 """
9
10 from twisted.trial import unittest
11
12 from sparked import monitors
13
15 """
16 Test the L{sparked.monitors.MonitorContainer}
17 """
18
20 """
21 Whether the "updated" signal comes in when a monitor changes state.
22 """
23 self.pinged = 0
24
25 class FooMonitor(monitors.Monitor):
26 pass
27
28 container = monitors.MonitorContainer()
29
30 def ping(c):
31 self.pinged += 1
32 self.assertEquals(c, container)
33
34 container.events.addObserver("updated", ping)
35
36 a = FooMonitor()
37 container.addMonitor(a)
38 self.assertEquals(self.pinged, 1)
39 self.assertEquals(container.monitors, [a])
40
41 b = FooMonitor()
42 container.addMonitor(b)
43 self.assertEquals(self.pinged, 2)
44 self.assertEquals(container.monitors, [a, b])
45
46 container.removeMonitor(a)
47 self.assertEquals(self.pinged, 3)
48 self.assertEquals(container.monitors, [b])
49