parent
094a121f3a
commit
dc6416a257
|
@ -131,6 +131,7 @@ class RelayServer(service.MultiService):
|
||||||
log.msg("get_stats took:", time.time() - start)
|
log.msg("get_stats took:", time.time() - start)
|
||||||
|
|
||||||
with open(tmpfn, "wb") as f:
|
with open(tmpfn, "wb") as f:
|
||||||
json.dump(data, f, indent=1)
|
# json.dump(f) has str-vs-unicode issues on py2-vs-py3
|
||||||
f.write("\n")
|
f.write(json.dumps(data, indent=1).encode("utf-8"))
|
||||||
|
f.write(b"\n")
|
||||||
os.rename(tmpfn, self._stats_file)
|
os.rename(tmpfn, self._stats_file)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from __future__ import print_function, unicode_literals
|
from __future__ import print_function, unicode_literals
|
||||||
import json, itertools, time
|
import os, json, itertools, time
|
||||||
from binascii import hexlify
|
from binascii import hexlify
|
||||||
import mock
|
import mock
|
||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
|
@ -11,7 +11,7 @@ from twisted.web import client
|
||||||
from autobahn.twisted import websocket
|
from autobahn.twisted import websocket
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
from ..server import rendezvous, transit_server
|
from ..server import server, rendezvous, transit_server
|
||||||
from ..server.rendezvous import Usage, SidedMessage
|
from ..server.rendezvous import Usage, SidedMessage
|
||||||
from ..server.database import get_db
|
from ..server.database import get_db
|
||||||
|
|
||||||
|
@ -1043,6 +1043,29 @@ class Summary(unittest.TestCase):
|
||||||
row = db.execute("SELECT * FROM `mailbox_usage`").fetchone()
|
row = db.execute("SELECT * FROM `mailbox_usage`").fetchone()
|
||||||
self.assertEqual(row["started"], 20)
|
self.assertEqual(row["started"], 20)
|
||||||
|
|
||||||
|
class DumpStats(unittest.TestCase):
|
||||||
|
def test_nostats(self):
|
||||||
|
rs = server.RelayServer(str("tcp:0"), str("tcp:0"), None)
|
||||||
|
# with no ._stats_file, this should do nothing
|
||||||
|
rs.dump_stats(1, 1)
|
||||||
|
|
||||||
|
def test_empty(self):
|
||||||
|
basedir = self.mktemp()
|
||||||
|
os.mkdir(basedir)
|
||||||
|
fn = os.path.join(basedir, "stats.json")
|
||||||
|
rs = server.RelayServer(str("tcp:0"), str("tcp:0"), None,
|
||||||
|
stats_file=fn)
|
||||||
|
now = 1234
|
||||||
|
validity = 500
|
||||||
|
rs.dump_stats(now, validity)
|
||||||
|
with open(fn, "rb") as f:
|
||||||
|
data_bytes = f.read()
|
||||||
|
data = json.loads(data_bytes.decode("utf-8"))
|
||||||
|
self.assertEqual(data["created"], now)
|
||||||
|
self.assertEqual(data["valid_until"], now+validity)
|
||||||
|
self.assertEqual(data["rendezvous"]["all_time"]["mailboxes_total"], 0)
|
||||||
|
self.assertEqual(data["transit"]["all_time"]["total"], 0)
|
||||||
|
|
||||||
|
|
||||||
class Accumulator(protocol.Protocol):
|
class Accumulator(protocol.Protocol):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user