add nested poll check mcp

This commit is contained in:
larssand
2026-07-06 11:03:05 +02:00
parent fc4d83331a
commit 897f593be9
3 changed files with 26 additions and 3 deletions

View File

@@ -1,9 +1,10 @@
import json
import signal
import unittest
from urllib.error import HTTPError
from unittest.mock import Mock, patch
from fgai.graylog_mcp import GraylogMcpClient
from fgai.graylog_mcp import GraylogMcpClient, _hard_timeout
class _Response:
@@ -83,6 +84,21 @@ class GraylogMcpTests(unittest.TestCase):
self.assertEqual(opener.open.call_args.kwargs["timeout"], 15)
self.assertEqual(build_opener.call_args.args[0].proxies, {})
def test_hard_timeout_preserves_outer_timer_remaining_time(self):
previous_handler = signal.getsignal(signal.SIGALRM)
previous_timer = signal.getitimer(signal.ITIMER_REAL)
try:
signal.setitimer(signal.ITIMER_REAL, 20)
with patch("fgai.graylog_mcp.time.monotonic", side_effect=[100.0, 103.0]):
with _hard_timeout(5):
pass
remaining = signal.getitimer(signal.ITIMER_REAL)[0]
self.assertGreater(remaining, 16)
self.assertLessEqual(remaining, 17.5)
finally:
signal.setitimer(signal.ITIMER_REAL, previous_timer[0], previous_timer[1])
signal.signal(signal.SIGALRM, previous_handler)
if __name__ == "__main__":
unittest.main()