Skip to content

add tests #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
new tests
  • Loading branch information
daisenthal committed Dec 17, 2024
commit 4c59f336a95fcf37f076d7a5187c4e7314530e4d
165 changes: 58 additions & 107 deletions upsolver/tests/test_qodo.py
Original file line number Diff line number Diff line change
@@ -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