8 def test_timer(repeat = 0, timer_start = 3600, timer_length = 1000, sim_length = 86400 * 7):
10 print "loading RecordTimer"
16 t = RecordTimer.RecordTimer()
17 t.MaxWaitTime = 86400 * 1000
19 # generate a timer to test
20 import xml.dom.minidom
22 timer = RecordTimer.createTimer(xml.dom.minidom.parseString(
27 serviceref="1:0:1:6DD2:44D:1:C00000:0:0:0:"
29 name="Test Event Name"
30 description="Test Event Description"
35 </timer>""" % (at + timer_start, at + timer_start + timer_length, repeat)
40 # run virtual environment
41 enigma.run(sim_length)
45 timers = t.processed_timers + t.timer_list
47 print "start: %s" % (time.ctime(at + 10))
49 assert len(timers) == 1
52 print "begin=%d, end=%d, repeated=%d, state=%d" % (t.begin - at, t.end - at, t.repeated, t.state)
53 print "begin: %s" % (time.ctime(t.begin))
54 print "end: %s" % (time.ctime(t.end))
56 # if repeat, check if the calculated repeated time of day matches the initial time of day
58 t_initial = time.localtime(at + timer_start)
59 t_repeated = time.localtime(timers[0].begin)
63 if t_initial[3:6] != t_repeated[3:6]:
64 raise tests.TestError("repeated timer time of day does not match")
66 import FakeNotifications
67 #sys.modules["Tools.Notifications"] = FakeNotifications
68 #sys.modules["Tools.NumericalTextInput.NumericalTextInput"] = FakeNotifications
70 # required stuff for timer (we try to keep this minimal)
72 enigma.init_record_config()
73 enigma.init_parental_control()
76 from events import log
82 # we are operating in CET/CEST
83 os.environ['TZ'] = 'CET'
86 #log(test_timer, test_name = "test_timer_repeating", base_time = calendar.timegm((2007, 3, 1, 12, 0, 0)), repeat=0x7f, sim_length = 86400 * 7)
87 log(test_timer, test_name = "test_timer_repeating_dst_start", base_time = calendar.timegm((2007, 03, 20, 0, 0, 0)), repeat=0x7f, sim_length = 86400 * 7)