Index: tests/pybin/test_run.py
===================================================================
--- tests/pybin/test_run.py	(revision 64cf022b37f2d2037efeb782541e1ddaf7a595b2)
+++ tests/pybin/test_run.py	(revision a77257bee9b89057fbbd5f12095d886c5be82c4c)
@@ -69,13 +69,4 @@
 			else :						text = "FAILED with code %d" % retcode
 
-		text += "    C%s - R%s" % (cls.fmtDur(duration[0]), cls.fmtDur(duration[1]))
+		text += "    C%s - R%s" % (fmtDur(duration[0]), fmtDur(duration[1]))
 		return text
-
-	@staticmethod
-	def fmtDur( duration ):
-		if duration :
-			hours, rem = divmod(duration, 3600)
-			minutes, rem = divmod(rem, 60)
-			seconds, millis = divmod(rem, 1)
-			return "%2d:%02d.%03d" % (minutes, seconds, millis * 1000)
-		return " n/a"
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 64cf022b37f2d2037efeb782541e1ddaf7a595b2)
+++ tests/pybin/tools.py	(revision a77257bee9b89057fbbd5f12095d886c5be82c4c)
@@ -387,2 +387,10 @@
 		while True:
 			yield i.next(max(expire - time.time(), 0))
+
+def fmtDur( duration ):
+	if duration :
+		hours, rem = divmod(duration, 3600)
+		minutes, rem = divmod(rem, 60)
+		seconds, millis = divmod(rem, 1)
+		return "%2d:%02d.%03d" % (minutes, seconds, millis * 1000)
+	return " n/a"
