1 # Copyright (c) Twisted Matrix Laboratories.
2 # See LICENSE for details.
5 Tests for implementations of L{IReactorTime}.
10 from twisted.python.runtime import platform
11 from twisted.internet.test.reactormixins import ReactorBuilder
14 class TimeTestsBuilder(ReactorBuilder):
16 Builder for defining tests relating to L{IReactorTime}.
18 def test_delayedCallStopsReactor(self):
20 The reactor can be stopped by a delayed call.
22 reactor = self.buildReactor()
23 reactor.callLater(0, reactor.stop)
28 class GlibTimeTestsBuilder(ReactorBuilder):
30 Builder for defining tests relating to L{IReactorTime} for reactors based
33 if platform.isWindows():
34 _reactors = ["twisted.internet.gtk2reactor.PortableGtkReactor"]
36 _reactors = ["twisted.internet.glib2reactor.Glib2Reactor",
37 "twisted.internet.gtk2reactor.Gtk2Reactor"]
39 def test_timeout_add(self):
41 A C{reactor.callLater} call scheduled from a C{gobject.timeout_add}
45 reactor = self.buildReactor()
49 reactor.callLater(0, callback)
55 reactor.callWhenRunning(gobject.timeout_add, 10, gschedule)
56 self.runReactor(reactor, 5)
57 self.assertEqual(result, [True])
60 globals().update(TimeTestsBuilder.makeTestCaseClasses())
61 globals().update(GlibTimeTestsBuilder.makeTestCaseClasses())