52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
import datetime
|
|
import json
|
|
import mock
|
|
import os
|
|
import shutil
|
|
import unittest
|
|
|
|
|
|
from shoebox import disk_storage
|
|
from shoebox import roll_checker
|
|
from shoebox import roll_manager
|
|
from shoebox import utils
|
|
|
|
import test.integration.gen_events as egen
|
|
|
|
|
|
TEMPDIR = "test_temp"
|
|
|
|
|
|
class TestSizeRolling(unittest.TestCase):
|
|
def setUp(self):
|
|
shutil.rmtree(TEMPDIR, ignore_errors=True)
|
|
os.mkdir(TEMPDIR)
|
|
|
|
def tearDown(self):
|
|
shutil.rmtree(TEMPDIR)
|
|
|
|
def test_size_rolling(self):
|
|
checker = roll_checker.SizeRollChecker(1)
|
|
manager = roll_manager.WritingRollManager("test_%c.events",
|
|
checker,
|
|
TEMPDIR)
|
|
g = egen.EventGenerator(6000)
|
|
nevents = 0
|
|
now = datetime.datetime.utcnow()
|
|
while nevents < 1000:
|
|
events = g.generate(now)
|
|
if events:
|
|
nevents += len(events)
|
|
for event in events:
|
|
metadata = {'event': event['event'],
|
|
'request_id': event['request_id'],
|
|
'generated': str(event['when']),
|
|
'uuid': event['uuid'],
|
|
}
|
|
json_event = json.dumps(event,
|
|
cls=utils.DateTimeEncoder)
|
|
manager.write(metadata, json_event)
|
|
|
|
now = g.move_to_next_tick(now)
|
|
|