def test_execute_insert_parameter_set_invalid(mocked_client, mocker) -> None: data_api = DataAPI( resource_arn='dummy', secret_arn='dummy', database='test', client=mocked_client ) with pytest.raises(ValidationError): data_api.batch_execute( "insert into test.pets values (:id , :name)", {'id': 3, 'name': 'bird'} )
def test_execute_insert_parameter_set_invalid_1(mocked_client, mocker) -> None: mocked_client.batch_execute_statement.side_effect = Exception('Invalid Request') data_api = DataAPI( resource_arn='arn:aws:rds:dummy', secret_arn='dummy', database='test', client=mocked_client, transaction_id='12345', ) with pytest.raises(Exception): data_api.batch_execute( "insert into test.pets values (:id , :name)", [{'id': 3, 'invalid': 'bird'}], )
def test_execute_insert_parameter_set(mocked_client, mocker) -> None: mocked_client.batch_execute_statement.return_value = { 'updateResults': [ {'generatedFields': [{'longValue': 3}]}, {'generatedFields': [{'longValue': 4}]}, ] } mocked_client.begin_transaction.return_value = {'transactionId': '12345'} data_api = DataAPI( resource_arn='arn:aws:rds:dummy', secret_arn='dummy', database='test', client=mocked_client, ) results = data_api.batch_execute( "insert into test.pets values (:id , :name)", [{'id': 3, 'name': 'bird'}, {'id': 4, 'name': 'lion'}], ) assert len(results) == 2 assert results[0].generated_fields == [3] assert results[0].generated_fields_first == 3 assert results[1].generated_fields == [4] assert results[1].generated_fields_first == 4 assert mocked_client.batch_execute_statement.call_args == mocker.call( resourceArn='arn:aws:rds:dummy', secretArn='dummy', sql="insert into test.pets values (:id , :name)", parameterSets=[ [ {'name': 'id', 'value': {'longValue': 3}}, {'name': 'name', 'value': {'stringValue': 'bird'}}, ], [ {'name': 'id', 'value': {'longValue': 4}}, {'name': 'name', 'value': {'stringValue': 'lion'}}, ], ], database='test', transactionId='12345', )