Skip to content

Commit 093828f

Browse files
committed
adds test
1 parent 6d6e997 commit 093828f

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

tests/test_persistent_log.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
'''
2+
Created on 2024-10-04
3+
4+
@author: wf
5+
'''
6+
from ngwidgets.basetest import Basetest
7+
from lodstorage.persistent_log import Log
8+
9+
class TestPersistentLog(Basetest):
10+
"""
11+
test the persistent log handling
12+
"""
13+
14+
def setUp(self, debug=True, profile=True):
15+
Basetest.setUp(self, debug=debug, profile=profile)
16+
self.log = Log()
17+
if debug:
18+
self.log.do_log=False
19+
self.log.do_print=True
20+
21+
def test_positive_logging(self):
22+
"""Test normal logging and level summary."""
23+
self.log.log("❌", "system", "An error occurred.")
24+
self.log.log("⚠️", "validation", "A warning message.")
25+
self.log.log("✅", "process", "Process completed successfully.")
26+
27+
# Verify entries
28+
self.assertEqual(len(self.log.entries), 3)
29+
self.assertEqual(self.log.entries[0].msg, "❌:An error occurred.")
30+
self.assertEqual(self.log.entries[1].msg, "⚠️:A warning message.")
31+
self.assertEqual(self.log.entries[2].msg, "✅:Process completed successfully.")
32+
33+
# Verify level counts
34+
count, summary = self.log.get_level_summary("error")
35+
self.assertEqual(count, 1)
36+
self.assertIn("system", summary)
37+
38+
count, summary = self.log.get_level_summary("warn")
39+
self.assertEqual(count, 1)
40+
self.assertIn("validation", summary)
41+
42+
count, summary = self.log.get_level_summary("info")
43+
self.assertEqual(count, 1)
44+
self.assertIn("process", summary)
45+
46+
yaml_file="/tmp/persistent_log_test.yaml"
47+
self.log.save_to_yaml_file(yaml_file)
48+
# Later or in another session
49+
loaded_log = Log.load_from_yaml_file(yaml_file)
50+
self.assertEqual(self.log,loaded_log)
51+
52+
def test_robustness(self):
53+
"""Test clearing logs and handling unsupported icons."""
54+
self.log.log("❌", "system", "First error.")
55+
self.log.log("⭐", "unknown", "Unknown log level.") # Unsupported icon
56+
self.log.clear()
57+
58+
# Verify entries are cleared
59+
self.assertEqual(len(self.log.entries), 0)
60+
61+
# Verify level counts are reset
62+
count, summary = self.log.get_level_summary("error")
63+
self.assertEqual(count, 0)
64+
self.assertIn("No entries found", summary)

0 commit comments

Comments
 (0)