test_stats: start improving coverage
This commit is contained in:
parent
923c5cef3c
commit
2e0c97cea8
42
src/wormhole_transit_relay/test/test_stats.py
Normal file
42
src/wormhole_transit_relay/test/test_stats.py
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
from __future__ import print_function, unicode_literals
|
||||||
|
import os, json
|
||||||
|
from twisted.trial import unittest
|
||||||
|
from ..transit_server import Transit
|
||||||
|
|
||||||
|
class UsageLog(unittest.TestCase):
|
||||||
|
def test_log(self):
|
||||||
|
d = self.mktemp()
|
||||||
|
os.mkdir(d)
|
||||||
|
usage_logfile = os.path.join(d, "usage.log")
|
||||||
|
def read():
|
||||||
|
with open(usage_logfile, "rb") as f:
|
||||||
|
return [json.loads(line) for line in f.readlines()]
|
||||||
|
t = Transit(None, usage_logfile, None)
|
||||||
|
t.recordUsage(started=123, result="happy", total_bytes=100,
|
||||||
|
total_time=10, waiting_time=2)
|
||||||
|
self.assertEqual(read(), [dict(started=123, mood="happy",
|
||||||
|
total_time=10, waiting_time=2,
|
||||||
|
total_bytes=100)])
|
||||||
|
|
||||||
|
t.recordUsage(started=150, result="errory", total_bytes=200,
|
||||||
|
total_time=11, waiting_time=3)
|
||||||
|
self.assertEqual(read(), [dict(started=123, mood="happy",
|
||||||
|
total_time=10, waiting_time=2,
|
||||||
|
total_bytes=100),
|
||||||
|
dict(started=150, mood="errory",
|
||||||
|
total_time=11, waiting_time=3,
|
||||||
|
total_bytes=200),
|
||||||
|
])
|
||||||
|
|
||||||
|
if False:
|
||||||
|
# the current design opens the logfile exactly once, at process
|
||||||
|
# start, in the faint hopes of surviving an exhaustion of available
|
||||||
|
# file descriptors. This should be rethought.
|
||||||
|
os.unlink(usage_logfile)
|
||||||
|
|
||||||
|
t.recordUsage(started=200, result="lonely", total_bytes=300,
|
||||||
|
total_time=12, waiting_time=4)
|
||||||
|
self.assertEqual(read(), [dict(started=200, mood="lonely",
|
||||||
|
total_time=12, waiting_time=4,
|
||||||
|
total_bytes=300)])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user