Skip to content

Commit f3922df

Browse files
committed
Add custom log levels
1 parent cbdc9e1 commit f3922df

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

reportportal_client/logs/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def __init__(
119119
endpoint: Optional[str] = None,
120120
ignored_record_names: tuple = tuple("reportportal_client"),
121121
rp_client: Optional["RP"] = None,
122+
custom_levels: Optional[dict[int, str]] = None,
122123
) -> None:
123124
"""
124125
Initialize RPLogHandler instance.
@@ -133,6 +134,8 @@ def __init__(
133134
"""
134135
super(RPLogHandler, self).__init__(level)
135136
self._loglevel_map = LOG_LEVEL_MAPPING.copy()
137+
if custom_levels:
138+
self._loglevel_map.update(custom_levels)
136139
self._sorted_levelnos = sorted(self._loglevel_map.keys(), reverse=True)
137140
self.filter_client_logs = filter_client_logs
138141
self.ignored_record_names = ignored_record_names

tests/logs/test_rp_log_handler.py

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def test_emit_simple(mocked_handle):
7676

7777

7878
@mock.patch("reportportal_client.logs.logging.Logger.handle")
79-
def test_emit_custom_level(mocked_handle):
79+
def test_emit_int_warn_level(mocked_handle):
8080
test_message = "test message"
8181
RPLogger("test_logger").log(30, test_message)
8282
record = mocked_handle.call_args[0][0]
@@ -91,6 +91,60 @@ def test_emit_custom_level(mocked_handle):
9191
assert call_kwargs["level"] == "WARN"
9292

9393

94+
@mock.patch("reportportal_client.logs.logging.Logger.handle")
95+
def test_emit_custom_int_warn_level(mocked_handle):
96+
test_message = "test message"
97+
RPLogger("test_logger").log(35, test_message)
98+
record = mocked_handle.call_args[0][0]
99+
100+
mock_client = mock.Mock()
101+
set_current(mock_client)
102+
103+
log_handler = RPLogHandler()
104+
log_handler.emit(record)
105+
assert mock_client.log.call_count == 1
106+
call_args, call_kwargs = mock_client.log.call_args
107+
assert call_kwargs["level"] == "WARN"
108+
109+
110+
@mock.patch("reportportal_client.logs.logging.Logger.handle")
111+
def test_emit_custom_int_custom_level(mocked_handle):
112+
test_message = "test message"
113+
custom_level_id = 35
114+
custom_level = "BIG_WARN"
115+
RPLogger("test_logger").log(custom_level_id, test_message)
116+
record = mocked_handle.call_args[0][0]
117+
118+
mock_client = mock.Mock()
119+
set_current(mock_client)
120+
121+
custom_levels = {custom_level_id: custom_level}
122+
log_handler = RPLogHandler(custom_levels=custom_levels)
123+
log_handler.emit(record)
124+
assert mock_client.log.call_count == 1
125+
call_args, call_kwargs = mock_client.log.call_args
126+
assert call_kwargs["level"] == custom_level
127+
128+
129+
@mock.patch("reportportal_client.logs.logging.Logger.handle")
130+
def test_emit_custom_int_custom_level_override(mocked_handle):
131+
test_message = "test message"
132+
custom_level_id = 30
133+
custom_level = "BIG_WARN"
134+
RPLogger("test_logger").log(custom_level_id, test_message)
135+
record = mocked_handle.call_args[0][0]
136+
137+
mock_client = mock.Mock()
138+
set_current(mock_client)
139+
140+
custom_levels = {custom_level_id: custom_level}
141+
log_handler = RPLogHandler(custom_levels=custom_levels)
142+
log_handler.emit(record)
143+
assert mock_client.log.call_count == 1
144+
call_args, call_kwargs = mock_client.log.call_args
145+
assert call_kwargs["level"] == custom_level
146+
147+
94148
@mock.patch("reportportal_client.logs.logging.Logger.handle")
95149
def test_emit_null_client_no_error(mocked_handle):
96150
test_message = "test message"

0 commit comments

Comments
 (0)