summaryrefslogtreecommitdiff
path: root/tests/events.py
blob: 60dd4a5dcd9a792bc787b8e46abeceb416161ff0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import time

recorded_events = [ ]

def event(self, name, args, kwargs):
	global recorded_events
	print "*EVENT*", time.time(), self, name, args, kwargs
	recorded_events.append((time.time(), self, name, args, kwargs))

def eventfnc(f):
	name = f.__name__
	def wrapper(self, *args, **kwargs):
		event(self, name, args, kwargs)
		return f(self, *args, **kwargs)
	return wrapper

def get_events():
	global recorded_events
	r = recorded_events
	recorded_events = [ ]
	return r

def start_log():
	global base_time
	base_time = time.time()

def end_log():
	global base_time
	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)

def log(fnc, base_time = 0, *args, **kwargs):
	import fake_time
	fake_time.setTime(base_time)

	start_log()
	fnc(*args, **kwargs)
	end_log()