diff --git a/lib/sedna/service/client.py b/lib/sedna/service/client.py index dd24f3387..56b8ec1f6 100644 --- a/lib/sedna/service/client.py +++ b/lib/sedna/service/client.py @@ -45,7 +45,8 @@ def http_request( _maxTimeout = timeout if timeout else 300 _method = "GET" if not method else method try: - response = requests.request(method=_method, url=url, **kwargs) + response = requests.request( + method=_method, url=url, timeout=_maxTimeout, **kwargs) if response.status_code == 200: if no_decode: return response diff --git a/lib/tests/test_service_client.py b/lib/tests/test_service_client.py new file mode 100644 index 000000000..38268e807 --- /dev/null +++ b/lib/tests/test_service_client.py @@ -0,0 +1,33 @@ +import unittest +from unittest.mock import Mock, patch + +from sedna.service.client import http_request + + +class HTTPRequestTest(unittest.TestCase): + + @patch("sedna.service.client.requests.request") + def test_forwards_explicit_timeout(self, request): + response = Mock(status_code=200) + request.return_value = response + + self.assertIs(http_request( + "http://example.test", timeout=7, no_decode=True), response) + + request.assert_called_once_with( + method="GET", url="http://example.test", timeout=7) + + @patch("sedna.service.client.requests.request") + def test_forwards_default_timeout(self, request): + response = Mock(status_code=200) + request.return_value = response + + self.assertIs(http_request( + "http://example.test", no_decode=True), response) + + request.assert_called_once_with( + method="GET", url="http://example.test", timeout=300) + + +if __name__ == "__main__": + unittest.main()