From 3fcb42a96145957394d1eb37bd8e478a74db3193 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 16 Dec 2024 09:38:06 +0200 Subject: [PATCH 1/3] add tests --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a14f695..a89214d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Using Upsolver with DBAPI in python +# Using Upsolver with DBAPI in python -adding tests ## What is Upsolver From ad1acb4ed3d46aa3a92f3c711f352952bc32c1d7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 16 Dec 2024 10:26:42 +0200 Subject: [PATCH 2/3] new qodo tests --- upsolver/tests/test_qodo.py | 121 ++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 upsolver/tests/test_qodo.py diff --git a/upsolver/tests/test_qodo.py b/upsolver/tests/test_qodo.py new file mode 100644 index 0000000..04c002a --- /dev/null +++ b/upsolver/tests/test_qodo.py @@ -0,0 +1,121 @@ + +# Generated by Qodo Gen +from upsolver.client.exceptions import OperationalError +from upsolver.dbapi.connection import Connection #missed + + +# Dependencies: +# pip install pytest-mock +import pytest +from upsolver.client.exceptions import NotSupportedError +from upsolver.client.exceptions import InterfaceError + +class TestConnection: + + # Successfully create connection with valid token, API URL and timeout + def test_create_connection_success(self, mocker): + # Arrange + token = "test_token" + api_url = "http://test.api" + timeout = "60s" + + mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') + + # Act + conn = Connection(token, api_url, timeout) + + # Assert + mock_requester.assert_called_once_with( + base_url=api_url, + auth_filler=mock_auth.return_value + ) + mock_auth.assert_called_once_with(token) + mock_api.assert_called_once() + assert not conn.closed + assert conn._timeout == 60.0 + + # Initialize with invalid token or API URL + def test_create_connection_invalid_params(self, mocker): + # Arrange + token = "invalid_token" + api_url = "invalid_url" + timeout = "60s" + + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_requester.side_effect = Exception("API Error") + + # Act & Assert + with pytest.raises(OperationalError) as exc_info: + Connection(token, api_url, timeout) + + assert str(exc_info.value) == "Failed to initialize connection with Upsolver API" + mock_requester.assert_called_once() + + def test_rollback_not_supported(self, mocker): + # Arrange + token = "test_token" + api_url = "http://test.api" + timeout = "60s" + + mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') + + conn = Connection(token, api_url, timeout) + + # Act & Assert + with pytest.raises(NotSupportedError): + conn.rollback() + + + def test_commit_not_supported(self, mocker): + # Arrange + token = "test_token" + api_url = "http://test.api" + timeout = "60s" + + mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') + + conn = Connection(token, api_url, timeout) + + # Act & Assert + with pytest.raises(NotSupportedError): + conn.commit() + + + def test_connection_context_manager(self, mocker): + # Arrange + token = "test_token" + api_url = "http://test.api" + timeout = "60s" + + mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') + + # Act + with Connection(token, api_url, timeout) as conn: + assert not conn.closed + + # Assert + assert conn.closed + + + def test_create_connection_invalid_timeout(self, mocker): + # Arrange + token = "test_token" + api_url = "http://test.api" + invalid_timeout = "invalid_timeout" + + mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') + mock_requester.return_value = mocker.Mock() + + # Act & Assert + with pytest.raises(InterfaceError) as exc_info: + Connection(token, api_url, invalid_timeout) + + assert str(exc_info.value) == "Timeout can't be parsed" From 4c59f336a95fcf37f076d7a5187c4e7314530e4d Mon Sep 17 00:00:00 2001 From: David Aisenthal Date: Tue, 17 Dec 2024 15:35:01 +0200 Subject: [PATCH 3/3] new tests --- upsolver/tests/test_qodo.py | 165 +++++++++++++----------------------- 1 file changed, 58 insertions(+), 107 deletions(-) diff --git a/upsolver/tests/test_qodo.py b/upsolver/tests/test_qodo.py index 04c002a..b130e04 100644 --- a/upsolver/tests/test_qodo.py +++ b/upsolver/tests/test_qodo.py @@ -1,121 +1,72 @@ # Generated by Qodo Gen -from upsolver.client.exceptions import OperationalError -from upsolver.dbapi.connection import Connection #missed - # Dependencies: # pip install pytest-mock import pytest -from upsolver.client.exceptions import NotSupportedError -from upsolver.client.exceptions import InterfaceError - -class TestConnection: - - # Successfully create connection with valid token, API URL and timeout - def test_create_connection_success(self, mocker): - # Arrange - token = "test_token" - api_url = "http://test.api" - timeout = "60s" - - mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') - - # Act - conn = Connection(token, api_url, timeout) - - # Assert - mock_requester.assert_called_once_with( - base_url=api_url, - auth_filler=mock_auth.return_value - ) - mock_auth.assert_called_once_with(token) - mock_api.assert_called_once() - assert not conn.closed - assert conn._timeout == 60.0 - - # Initialize with invalid token or API URL - def test_create_connection_invalid_params(self, mocker): - # Arrange - token = "invalid_token" - api_url = "invalid_url" - timeout = "60s" - - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_requester.side_effect = Exception("API Error") - - # Act & Assert - with pytest.raises(OperationalError) as exc_info: - Connection(token, api_url, timeout) - - assert str(exc_info.value) == "Failed to initialize connection with Upsolver API" - mock_requester.assert_called_once() - - def test_rollback_not_supported(self, mocker): - # Arrange - token = "test_token" - api_url = "http://test.api" - timeout = "60s" - - mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') - - conn = Connection(token, api_url, timeout) - - # Act & Assert + +class Test__Init__: + + # Initialize RestQueryApi with valid Requester and ResponsePollerBuilder instances + def test_init_with_valid_parameters(self, mocker): + from upsolver.client.requester import Requester + from upsolver.client.poller import ResponsePollerBuilder + from upsolver.client.query import RestQueryApi + + mock_requester = mocker.Mock(spec=Requester) + mock_poller_builder = mocker.Mock(spec=ResponsePollerBuilder) + + api = RestQueryApi(requester=mock_requester, poller_builder=mock_poller_builder) + + assert api.requester == mock_requester + assert api.poller_builder == mock_poller_builder + + + # Initialize with None as poller_builder parameter + def test_init_with_none_poller_builder(self, mocker): + from upsolver.client.requester import Requester + from upsolver.client.query import RestQueryApi + + mock_requester = mocker.Mock(spec=Requester) + + api = RestQueryApi(requester=mock_requester, poller_builder=None) + + assert api.requester == mock_requester + assert api.poller_builder is None + + # Verify requester attribute is correctly set after initialization + def test_requester_attribute_initialization(self, mocker): + from upsolver.client.requester import Requester + from upsolver.client.poller import ResponsePollerBuilder + from upsolver.client.query import RestQueryApi + + mock_requester = mocker.Mock(spec=Requester) + mock_poller_builder = mocker.Mock(spec=ResponsePollerBuilder) + + api = RestQueryApi(requester=mock_requester, poller_builder=mock_poller_builder) + + assert api.requester == mock_requester + + def test_connection_rollback_not_supported(mocker): + from upsolver.dbapi.connection import Connection + from upsolver.client.exceptions import NotSupportedError + + conn = Connection(token="dummy_token", api_url="http://dummy_url") with pytest.raises(NotSupportedError): conn.rollback() - def test_commit_not_supported(self, mocker): - # Arrange - token = "test_token" - api_url = "http://test.api" - timeout = "60s" - - mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') - - conn = Connection(token, api_url, timeout) - - # Act & Assert + def test_connection_commit_not_supported(mocker): + from upsolver.dbapi.connection import Connection + from upsolver.client.exceptions import NotSupportedError + + conn = Connection(token="dummy_token", api_url="http://dummy_url") with pytest.raises(NotSupportedError): conn.commit() - def test_connection_context_manager(self, mocker): - # Arrange - token = "test_token" - api_url = "http://test.api" - timeout = "60s" - - mock_api = mocker.patch('upsolver.dbapi.connection.RestQueryApi') - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_auth = mocker.patch('upsolver.dbapi.connection.TokenAuthFiller') - - # Act - with Connection(token, api_url, timeout) as conn: - assert not conn.closed - - # Assert - assert conn.closed - - - def test_create_connection_invalid_timeout(self, mocker): - # Arrange - token = "test_token" - api_url = "http://test.api" - invalid_timeout = "invalid_timeout" - - mock_requester = mocker.patch('upsolver.dbapi.connection.Requester') - mock_requester.return_value = mocker.Mock() - - # Act & Assert - with pytest.raises(InterfaceError) as exc_info: - Connection(token, api_url, invalid_timeout) - - assert str(exc_info.value) == "Timeout can't be parsed" + def test_connection_exit_no_error(mocker): + from upsolver.dbapi.connection import Connection + + conn = Connection(token="dummy_token", api_url="http://dummy_url") + assert conn.__exit__(None, None, None) is True