Files
cleveragents-core/robot/database_resources.robot
T
freemo c054675167
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 40s
CI / integration_tests (pull_request) Successful in 4m5s
CI / unit_tests (pull_request) Successful in 4m56s
CI / coverage (pull_request) Successful in 5m13s
CI / docker (pull_request) Successful in 1m10s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 19s
CI / build (push) Successful in 17s
CI / security (push) Successful in 37s
CI / typecheck (push) Successful in 40s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m59s
CI / integration_tests (push) Successful in 3m24s
CI / docker (push) Successful in 40s
CI / coverage (push) Successful in 5m14s
CI / benchmark-publish (push) Successful in 17m55s
CI / benchmark-regression (pull_request) Successful in 34m15s
feat(resource): add database resources
Implement database resource types (postgres, mysql, sqlite, duckdb)
with connection args, auth handling, and transaction-based sandbox
strategy using BEGIN/ROLLBACK/COMMIT wrappers.

Key changes:
- Add DatabaseResourceHandler with 4 database type definitions
- Implement TransactionSandbox for transaction_rollback strategy
- Wire TransactionSandbox into SandboxFactory
- Register database types in bootstrap_builtin_types
- Add connection validation with credential masking
- Add Behave BDD tests, Robot integration tests, ASV benchmarks

ISSUES CLOSED: #342
2026-03-10 19:29:27 +00:00

74 lines
3.2 KiB
Plaintext

*** Settings ***
Documentation Integration smoke tests for database resource types and transaction sandbox
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_database_resources.py
*** Test Cases ***
Database Handler Protocol Conformance
[Documentation] Verify DatabaseResourceHandler satisfies ResourceHandler
${result}= Run Process ${PYTHON} ${HELPER} protocol-check cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} protocol-check-ok
Database Type Definitions Present
[Documentation] Verify all 4 database type definitions are present
${result}= Run Process ${PYTHON} ${HELPER} type-defs cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} type-defs-ok
SQLite Connection Validation
[Documentation] Verify SQLite connection validation succeeds
${result}= Run Process ${PYTHON} ${HELPER} sqlite-validate cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sqlite-validate-ok
Transaction Sandbox Commit
[Documentation] Verify TransactionSandbox commit persists data
${result}= Run Process ${PYTHON} ${HELPER} tx-commit cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tx-commit-ok
Transaction Sandbox Rollback
[Documentation] Verify TransactionSandbox rollback discards data
${result}= Run Process ${PYTHON} ${HELPER} tx-rollback cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tx-rollback-ok
Credential Masking In Validation
[Documentation] Verify credentials are masked in validation output
${result}= Run Process ${PYTHON} ${HELPER} cred-mask cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} cred-mask-ok
SandboxFactory Transaction Rollback Routing
[Documentation] Verify SandboxFactory creates TransactionSandbox for transaction_rollback
${result}= Run Process ${PYTHON} ${HELPER} factory-routing cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} factory-routing-ok
Read Only Enforcement
[Documentation] Verify read-only mode prevents writes
${result}= Run Process ${PYTHON} ${HELPER} read-only cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} read-only-ok