Skip to content

Commit afdf001

Browse files
test(provider): add RaygunHandler unit tests (#120)
1 parent 016ac0b commit afdf001

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

python3/tests/test_functional.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,14 @@ def test_log_without_sending(self):
174174

175175
self.assertEqual(0, self.log_nosend(logger))
176176

177+
def test_logger_without_exception(self):
178+
logger = logging.getLogger("mylogger")
179+
rgHandler = raygunprovider.RaygunHandler(self.apiKey)
180+
logger.addHandler(rgHandler)
181+
182+
# should not fail or throw an exception
183+
logger.error("Logging without exception")
184+
177185
def test_localvariables(self):
178186
client = raygunprovider.RaygunSender(self.apiKey)
179187

python3/tests/test_raygunprovider.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from raygun4py import utilities
66
from raygun4py import __version__
77
from raygun4py import version as version_file
8+
import logging
9+
from unittest import mock
810

911

1012
class TestRaygunSender(unittest.TestCase):
@@ -206,6 +208,28 @@ def test_groupingkey_is_none_when_too_long_string_returned_from_callback(self):
206208
self.assertIsNone(msg.get_details()["groupingKey"])
207209

208210

211+
class TestRaygunHandler(unittest.TestCase):
212+
def setUp(self):
213+
self.handler = raygunprovider.RaygunHandler("testkey", "v1.0")
214+
self.handler.sender.send_exception = mock.MagicMock(return_value=(202, "OK"))
215+
216+
def test_logging_outside_exception_context(self):
217+
"""Test that RaygunHandler can handle logging outside of an exception context"""
218+
logger = logging.getLogger("test_logger")
219+
logger.addHandler(self.handler)
220+
221+
# Log a message without an exception context
222+
logger.error("Test error message")
223+
224+
# Verify that send_exception was called with a fallback error
225+
self.handler.sender.send_exception.assert_called_once()
226+
call_args = self.handler.sender.send_exception.call_args[1]
227+
self.assertIsNotNone(call_args.get("fallback_error"))
228+
self.assertEqual(call_args.get("tags"), ["Error Log"])
229+
230+
logger.removeHandler(self.handler)
231+
232+
209233
def main():
210234
unittest.main()
211235

0 commit comments

Comments
 (0)