X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=tests%2Fevents.py;h=dde84e2607aa2a055f2b540c662b88022cf8df98;hp=60dd4a5dcd9a792bc787b8e46abeceb416161ff0;hb=059c9a03c8cc02b0c595e3a5599be04dc157f725;hpb=9ba8856a4018978591ba437607b6f92b562d226e diff --git a/tests/events.py b/tests/events.py index 60dd4a5..dde84e2 100644 --- a/tests/events.py +++ b/tests/events.py @@ -1,4 +1,5 @@ import time +import tests recorded_events = [ ] @@ -24,15 +25,46 @@ def start_log(): global base_time base_time = time.time() -def end_log(): +def end_log(test_name): global base_time + + results = "" + for (t, self, method, args, kwargs) in get_events(): - print "%s T+%f: %s::%s(%s, *%s, *%s)" % (time.ctime(t), t - base_time, str(self.__class__), method, self, args, kwargs) + results += "%s T+%f: %s::%s(%s, *%s, *%s)\n" % (time.ctime(t), t - base_time, str(self.__class__), method, self, args, kwargs) -def log(fnc, base_time = 0, *args, **kwargs): + expected = None + + try: + f = open(test_name + ".results", "rb") + expected = f.read() + f.close() + except: + print "NO TEST RESULT FOUND, creating new" + f = open(test_name + ".new_results", "wb") + f.write(results) + f.close() + + print results + + if expected is not None: + print "expected:" + if expected != results: + open(test_name + ".bogus_results", "wb").write(results) + raise tests.TestError("test data does not match") + else: + print "test compared ok" + else: + print "no test data to compare with." + +def log(fnc, base_time = 0, test_name = "test", *args, **kwargs): import fake_time fake_time.setTime(base_time) start_log() - fnc(*args, **kwargs) - end_log() + try: + fnc(*args, **kwargs) + event(None, "test_completed", [], {"test_name": test_name}) + except tests.TestError,c: + event(None, "test_failed", [], {"test_name": test_name, "reason": str(c)}) + end_log(test_name)