|
1 | 1 | import pytest |
| 2 | +from pytest_mock import MockerFixture |
2 | 3 |
|
3 | 4 | from sqlitecloud.driver import Driver |
| 5 | +from sqlitecloud.types import SQCloudConfig, SqliteCloudAccount |
4 | 6 |
|
5 | 7 |
|
6 | 8 | class TestDriver: |
@@ -212,3 +214,46 @@ def test_escape_sql_parameter_with_dict(self): |
212 | 214 | driver.escape_sql_parameter(param) |
213 | 215 |
|
214 | 216 | assert expected_result |
| 217 | + |
| 218 | + def test_nonlinearizable_command_before_auth_with_account( |
| 219 | + self, mocker: MockerFixture |
| 220 | + ): |
| 221 | + driver = Driver() |
| 222 | + |
| 223 | + config = SQCloudConfig() |
| 224 | + config.account = SqliteCloudAccount() |
| 225 | + config.account.username = "pippo" |
| 226 | + config.account.password = "pluto" |
| 227 | + config.non_linearizable = True |
| 228 | + |
| 229 | + mocker.patch.object(driver, "_internal_connect", return_value=None) |
| 230 | + run_command_mock = mocker.patch.object(driver, "_internal_run_command") |
| 231 | + |
| 232 | + driver.connect("myhost", 8860, config) |
| 233 | + |
| 234 | + expected_buffer = ( |
| 235 | + "SET CLIENT KEY NONLINEARIZABLE TO 1;AUTH USER pippo PASSWORD pluto;" |
| 236 | + ) |
| 237 | + |
| 238 | + run_command_mock.assert_called_once() |
| 239 | + assert run_command_mock.call_args[0][1] == expected_buffer |
| 240 | + |
| 241 | + def test_nonlinearizable_command_before_auth_with_apikey( |
| 242 | + self, mocker: MockerFixture |
| 243 | + ): |
| 244 | + driver = Driver() |
| 245 | + |
| 246 | + config = SQCloudConfig() |
| 247 | + config.account = SqliteCloudAccount() |
| 248 | + config.account.apikey = "abc123" |
| 249 | + config.non_linearizable = True |
| 250 | + |
| 251 | + mocker.patch.object(driver, "_internal_connect", return_value=None) |
| 252 | + run_command_mock = mocker.patch.object(driver, "_internal_run_command") |
| 253 | + |
| 254 | + driver.connect("myhost", 8860, config) |
| 255 | + |
| 256 | + expected_buffer = "SET CLIENT KEY NONLINEARIZABLE TO 1;AUTH APIKEY abc123;" |
| 257 | + |
| 258 | + run_command_mock.assert_called_once() |
| 259 | + assert run_command_mock.call_args[0][1] == expected_buffer |
0 commit comments