From 4c98a0c215d170f60f4d58a31a89621e319dc15e Mon Sep 17 00:00:00 2001 From: Jessie Chen Date: Fri, 4 Aug 2023 15:18:51 -0700 Subject: [PATCH] add unit tests --- test/config.ini | 0 test/unit/test_connection.py | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 test/config.ini diff --git a/test/config.ini b/test/config.ini new file mode 100644 index 0000000..e69de29 diff --git a/test/unit/test_connection.py b/test/unit/test_connection.py index c5c90bf..e24c9d7 100644 --- a/test/unit/test_connection.py +++ b/test/unit/test_connection.py @@ -2,6 +2,8 @@ from collections import deque from decimal import Decimal from unittest.mock import patch +from unittest import mock +import socket import pytest # type: ignore @@ -12,6 +14,7 @@ IntegrityError, InterfaceError, ProgrammingError, + OperationalError ) from redshift_connector.config import ( ClientProtocolVersion, @@ -328,3 +331,9 @@ def test_client_os_version_is_not_present(): with patch("platform.platform", side_effect=Exception("not for you")): assert mock_connection.client_os_version == "unknown" + +def test_socket_timeout_operational_error(): + with mock.patch('socket.socket.bind') as mock_socket: + mock_socket.side_effect = socket.timeout + with pytest.raises(OperationalError): + Connection(user='mock_user', password='mock_password', host='localhost', port=8080, database='mocked') \ No newline at end of file