def test_type_parsing_large_multi_row(): rows = sql.query(generate_fake_data_query(15000, 0)).data for data in rows: check_correct_types(data) assert len(rows) == 15000
def test_result_error_handling_on_ignore(mocker): mocker.patch("pymssqlutils.methods._execute", side_effect=pymssql.OperationalError) result = sql.query( "test query", raise_errors=False, ) assert result.ok is False assert isinstance(result.error, pymssql.OperationalError) with pytest.raises(ValueError): result.data
def test_query(mocker: MockerFixture, monkeypatch): monkeypatch.setenv("MSSQL_SERVER", "server") mocker.patch("pymssqlutils.databaseresult._cursor_generator", return_value=[]) conn = mocker.patch("pymssqlutils.methods._get_connection", autospec=True) cursor = ( conn.return_value.__enter__.return_value.cursor.return_value.__enter__.return_value ) result = sql.query("test query") assert cursor.execute.call_args_list == [ (("test query",),), ] assert isinstance(result, DatabaseResult) assert result.data is not None assert result.ok assert result.fetch assert not result.commit
def test_type_parsing_multi_row_some_null(): rows = sql.query(generate_fake_data_query(15, 0.5)).data for data in rows: check_correct_types(data, True)
def test_type_parsing_multi_row_all_null(): rows = sql.query(generate_fake_data_query(5, 1)).data for data in rows: for item in data.values(): assert item is None
def test_type_parsing_single_row_all_null(): data = sql.query(generate_fake_data_query(1, 1)).data[0] for item in data.values(): assert item is None
def test_type_parsing_multi_row(): rows = sql.query(generate_fake_data_query(50, 0)).data for data in rows: check_correct_types(data)
def test_type_parsing_single_row(): data = sql.query(generate_fake_data_query(1, 0)).data[0] check_correct_types(data)
def test_can_connect(): sql.query("SELECT sysdatetimeoffset() now")
def test_no_return(): result = sql.query("SELECT TOP 0 'test' Col1") assert result.data == []
def test_result_error_handling_on_raise(mocker): mocker.patch("pymssqlutils.methods._execute", side_effect=pymssql.OperationalError) with pytest.raises(pymssql.OperationalError): sql.query( "test query", )
def test_result_error_handling_on_ignore_and_raise(mocker): mocker.patch("pymssqlutils.methods._execute", side_effect=pymssql.OperationalError) result = sql.query("test query", raise_errors=False) with pytest.raises(sql.DatabaseError): result.raise_error()