[rust][ci] Add end-to-end tests for Oracle history backend (#12233)
This commit is contained in:
@@ -179,6 +179,35 @@ jobs:
|
||||
run: |
|
||||
sudo --preserve-env=PATH bash scripts/ci/ci_install_dependency.sh
|
||||
|
||||
- name: Setup Oracle Instant Client
|
||||
run: |
|
||||
sudo apt-get install -y unzip
|
||||
INSTANT_CLIENT_DIR="/home/ubuntu/instant-client"
|
||||
INSTANT_CLIENT_ZIP="instantclient-basic-linux.x64-23.9.0.25.07.zip"
|
||||
|
||||
if [ ! -d "$INSTANT_CLIENT_DIR/instantclient_23_9" ]; then
|
||||
echo "Downloading Oracle Instant Client..."
|
||||
mkdir -p "$INSTANT_CLIENT_DIR"
|
||||
cd "$INSTANT_CLIENT_DIR"
|
||||
wget https://download.oracle.com/otn_software/linux/instantclient/2390000/$INSTANT_CLIENT_ZIP
|
||||
unzip $INSTANT_CLIENT_ZIP
|
||||
rm $INSTANT_CLIENT_ZIP
|
||||
else
|
||||
echo "Oracle Instant Client already exists, skipping download"
|
||||
fi
|
||||
|
||||
echo "LD_LIBRARY_PATH=/home/ubuntu/instant-client/instantclient_23_9:\$LD_LIBRARY_PATH" >> $GITHUB_ENV
|
||||
|
||||
- name: Start Oracle Database
|
||||
run: |
|
||||
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=oracle --name oracle-db gvenzl/oracle-xe:21-slim
|
||||
echo "Starting Oracle DB..."
|
||||
|
||||
# Export Oracle connection environment variables
|
||||
echo "ATP_USER=system" >> $GITHUB_ENV
|
||||
echo "ATP_PASSWORD=oracle" >> $GITHUB_ENV
|
||||
echo "ATP_DSN=localhost:1521/XEPDB1" >> $GITHUB_ENV
|
||||
|
||||
- name: Build python binding
|
||||
run: |
|
||||
source "$HOME/.cargo/env"
|
||||
@@ -200,6 +229,12 @@ jobs:
|
||||
cd sgl-router
|
||||
SHOW_ROUTER_LOGS=1 ROUTER_LOCAL_MODEL_PATH="/home/ubuntu/models" pytest py_test/e2e_grpc -s -vv -o log_cli=true --log-cli-level=INFO
|
||||
|
||||
- name: Cleanup Oracle Database
|
||||
if: always()
|
||||
run: |
|
||||
docker stop oracle-db || true
|
||||
docker rm oracle-db || true
|
||||
|
||||
|
||||
finish:
|
||||
needs: [unit-test-rust, pytest-rust, pytest-rust-2]
|
||||
|
||||
@@ -75,6 +75,29 @@ class TestXaiBackend(StateManagementTests):
|
||||
kill_process_tree(cls.cluster["router"].pid)
|
||||
|
||||
|
||||
class TestOracleStore(ResponseCRUDBaseTest, ConversationCRUDBaseTest):
|
||||
"""End to end tests for Oracle database storage backend."""
|
||||
|
||||
api_key = os.environ.get("OPENAI_API_KEY")
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.model = "gpt-5-nano"
|
||||
cls.base_url_port = "http://127.0.0.1:30040"
|
||||
|
||||
cls.cluster = popen_launch_openai_xai_router(
|
||||
backend="openai",
|
||||
base_url=cls.base_url_port,
|
||||
history_backend="oracle",
|
||||
)
|
||||
|
||||
cls.base_url = cls.cluster["base_url"]
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
kill_process_tree(cls.cluster["router"].pid)
|
||||
|
||||
|
||||
class TestGrpcBackend(StateManagementTests, MCPTests):
|
||||
"""End to end tests for gRPC backend."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user