add rotation
This commit is contained in:
28
tests/test_syslog_server.py
Normal file
28
tests/test_syslog_server.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import gzip
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from fgai.syslog_server import rotate_log_file
|
||||
|
||||
|
||||
class SyslogRotationTests(unittest.TestCase):
|
||||
def test_rotation_compresses_and_prunes_archives(self):
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
output = Path(temporary_directory) / "fg_syslog.jsonl"
|
||||
output.write_text("first log line\n", encoding="utf-8")
|
||||
|
||||
archive = rotate_log_file(output, max_archives=1)
|
||||
|
||||
self.assertIsNotNone(archive)
|
||||
self.assertFalse(output.exists())
|
||||
with gzip.open(archive, "rt", encoding="utf-8") as handle:
|
||||
self.assertEqual(handle.read(), "first log line\n")
|
||||
|
||||
output.write_text("second log line\n", encoding="utf-8")
|
||||
rotate_log_file(output, max_archives=1)
|
||||
self.assertEqual(len(list(Path(temporary_directory).glob("fg_syslog.jsonl.*.gz"))), 1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user