- Primary: Python 3.10.14 (main test framework)
- Secondary: Java (DocLoader submodule)
- Runtime: unittest
testrunner.py– Primary test execution engineMakefile– Package distribution and basic test orchestration(used by dev team for unit-testing for local changes)
requirements.txt– Python dependencies (uses unpinned versions)- Key deps: couchbase==4.4.0, paramiko, requests, boto3, deepdiff, pandas
- No lockfile (no poetry.lock or requirements.lock)
- DocLoader managed as git submodule
Test Implementation
pytests/– All test code (41+ component directories)basetestcase.py– Base test class factoryepengine/– KV engine testscbas/– Columnar/Analytics testssecurity/– Security and authorization testsstorage/[magma|plasma|fusion]/– Storage engine testsupgrade/– Version upgrade validationCapella/– Capella REST API testsAtomicity/– ACID transaction tests
Core Libraries
lib/sdk_client3.py– Python SDK client (72KB)lib/couchbase_helper/– Cluster operations, document generationlib/BucketLib/– Bucket operationslib/CbasLib/– Columnar operationslib/SecurityLib/– Security utilitieslib/SystemEventLogLib/– Event log validationlib/framework_lib/– Test runner frameworklib/Jython_tasks/– Jython task executionlib/memcached/– Memcached protocol clientslib/backup_service_client/– Backup service API clientlib/capellaAPI/– Capella API libraries (submodule)
Feature Utilities
couchbase_utils/cb_server_rest_util/– REST API endpoint mappingscouchbase_utils/security_utils/– TLS, encryption, X.509 certificatescouchbase_utils/bucket_utils/– Bucket managementcouchbase_utils/cluster_utils/– Cluster operationscouchbase_utils/upgrade_utils/– Upgrade logiccouchbase_utils/rebalance_utils/– Rebalancing helperscouchbase_utils/dcp_utils/– DCP protocol utilities
Infrastructure
platform_utils/ssh_util/– Paramiko SSH managementplatform_utils/error_simulation/– Network/disk error simulationplatform_utils/docker_utils/– Docker operations
Configuration
conf/– Test suite configurations (280+ .conf files)node.ini– Cluster topology templatelogging.conf– Logging configuration template
Constants
py_constants/cb_constants/– Couchbase server constantspy_constants/cb_constants/CBServer.py– Version mappingspy_constants/cb_constants/system_event_log.py– Event schemasconstants/platform_constants/– Platform-specific valuesconstants/cloud_constants/– Cloud provider data
- File:
testrunner.py - Framework: unittest
- Usage:
python testrunner.py -i node.ini -c conf/sanity.conf
.inifiles: Cluster topology and credentials.conffiles: Test selections with parameters Format:module.class.test_method,param1=value1,param2=value2
sys.path = [".", "lib", "pytests", "pysystests", "couchbase_utils",
"platform_utils", "platform_utils/ssh_util",
"connections", "constants", "py_constants"]dedicated→ProvisionedBaseTestCaseserverless→OnCloudBaseTestcolumnar→ColumnarBaseTestdefault→OnPremBaseTest
-i, --ini– Required: cluster configuration file-c, --config– Test suite configuration-t, --test– Single test specification-m, --mode– doc_loader mode (rest/cli/java)-p, --params– Global parameters--launch_java_doc_loader– Launch Java doc loader--launch_sirius_process– Launch Sirius client-g, --globalsearch– Global test search
couchbase==4.4.0– Couchbase Python SDKparamiko– SSH clientrequests– HTTP requestsboto3==1.42.59– AWS SDKdeepdiff– Deep comparisonpandas==2.2.3– Data manipulation
delta-spark==3.2.1– Delta Lake Sparkpyspark==3.5.3– Apache Sparkgoogle-cloud-storage– GCS integrationazure-storage-blob– Azure blob storage
unittest– Built-in Python testing
Missing Configurations
- No
.gitignoreexcludes.envfiles hardcoded secrets - No .env.example template for environment variables
- No pyproject.toml or setup.cfg for modern Python packaging
- No pre-commit hooks configuration
- No linting/formatting configuration
Submodule Status
DocLoader/– Java-based document loader (submodule)lib/capellaAPI/– Capella API libraries (submodule)
Logging Configuration
logging.conf– Template requiring filename replacementlogging.conf.sample– Sample configuration