X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=tests%2Ftest_timer.py;h=ea8b0bdbfeef40282f707a2d3784020e3ed9cda7;hp=e1672e72ac8e58de10062bcde9ff237ecbc65d67;hb=441ac3dbbc2c5dfd21b09b00f6d376a115ac32a5;hpb=283c17a74cf11f40b822807f2d9f52644136c749 diff --git a/tests/test_timer.py b/tests/test_timer.py index e1672e7..ea8b0bd 100644 --- a/tests/test_timer.py +++ b/tests/test_timer.py @@ -1,9 +1,96 @@ import enigma +import sys +import time -import RecordTimer +import tests -t = RecordTimer.RecordTimer() +#enigma.reset() +def test_timer(repeat = 0, timer_start = 3600, timer_length = 1000, sim_length = 86400 * 7): + import NavigationInstance + + at = time.time() + + t = NavigationInstance.instance.RecordTimer + print t + print "old mwt:", t.MaxWaitTime + t.MaxWaitTime = 86400 * 1000 + + # hack: + NavigationInstance.instance.SleepTimer.MaxWaitTime = 86400 * 1000 -# run virtual environment -enigma.run() + t.processed_timers = [ ] + t.timer_list = [ ] + + + # generate a timer to test + import xml.etree.cElementTree + import RecordTimer + + timer = RecordTimer.createTimer(xml.etree.cElementTree.fromstring( + """ + + """ % (at + timer_start, at + timer_start + timer_length, repeat) + )) + + t.record(timer) + + # run virtual environment + enigma.run(sim_length) + + print "done." + + timers = t.processed_timers + t.timer_list + + print "start: %s" % (time.ctime(at + 10)) + + assert len(timers) == 1 + + for t in timers: + print "begin=%d, end=%d, repeated=%d, state=%d" % (t.begin - at, t.end - at, t.repeated, t.state) + print "begin: %s" % (time.ctime(t.begin)) + print "end: %s" % (time.ctime(t.end)) + + # if repeat, check if the calculated repeated time of day matches the initial time of day + if repeat: + t_initial = time.localtime(at + timer_start) + t_repeated = time.localtime(timers[0].begin) + print t_initial + print t_repeated + + if t_initial[3:6] != t_repeated[3:6]: + raise tests.TestError("repeated timer time of day does not match") + +import FakeNotifications +#sys.modules["Tools.Notifications"] = FakeNotifications +#sys.modules["Tools.NumericalTextInput.NumericalTextInput"] = FakeNotifications + +# required stuff for timer (we try to keep this minimal) +enigma.init_nav() +enigma.init_record_config() +enigma.init_parental_control() + + +from events import log + +import calendar + + +import os +# we are operating in CET/CEST +os.environ['TZ'] = 'CET' +time.tzset() + +#log(test_timer, test_name = "test_timer_repeating", base_time = calendar.timegm((2007, 3, 1, 12, 0, 0)), repeat=0x7f, sim_length = 86400 * 7) +log(test_timer, test_name = "test_timer_repeating_dst_skip", base_time = calendar.timegm((2007, 03, 20, 0, 0, 0)), timer_start = 3600, repeat=0x7f, sim_length = 86400 * 7) +#log(test_timer, test_name = "test_timer_repeating_dst_start", base_time = calendar.timegm((2007, 03, 20, 0, 0, 0)), timer_start = 10000, repeat=0x7f, sim_length = 86400 * 7)