chore: import upstream snapshot with attribution
Lint with Ruff / ruff (push) Has been cancelled
MCP Server Tests / live-mcp-tests (push) Has been cancelled
Tests / unit-tests (push) Has been cancelled
Tests / database-integration-tests (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Server Tests / live-server-tests (push) Has been cancelled
Pyright Type Check / pyright (push) Has been cancelled
Lint with Ruff / ruff (push) Has been cancelled
MCP Server Tests / live-mcp-tests (push) Has been cancelled
Tests / unit-tests (push) Has been cancelled
Tests / database-integration-tests (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Server Tests / live-server-tests (push) Has been cancelled
Pyright Type Check / pyright (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
name: Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
runs-on: depot-ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3
|
||||
with:
|
||||
version: "latest"
|
||||
- name: Install dependencies
|
||||
run: uv sync --all-extras
|
||||
- name: Run unit tests (no external dependencies)
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
DISABLE_NEPTUNE: 1
|
||||
DISABLE_NEO4J: 1
|
||||
DISABLE_FALKORDB: 1
|
||||
DISABLE_KUZU: 1
|
||||
run: |
|
||||
uv run pytest tests/ -m "not integration" \
|
||||
--ignore=tests/test_graphiti_int.py \
|
||||
--ignore=tests/test_graphiti_mock.py \
|
||||
--ignore=tests/test_node_int.py \
|
||||
--ignore=tests/test_edge_int.py \
|
||||
--ignore=tests/test_entity_exclusion_int.py \
|
||||
--ignore=tests/driver/ \
|
||||
--ignore=tests/llm_client/test_anthropic_client_int.py \
|
||||
--ignore=tests/utils/maintenance/test_temporal_operations_int.py \
|
||||
--ignore=tests/cross_encoder/test_bge_reranker_client_int.py \
|
||||
--ignore=tests/evals/
|
||||
|
||||
database-integration-tests:
|
||||
runs-on: depot-ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3
|
||||
with:
|
||||
version: "latest"
|
||||
- name: Start databases
|
||||
# Run the databases ourselves on the host network rather than via a GitHub
|
||||
# Actions `services:` block. On the depot-ubuntu runner pool, bridge-network
|
||||
# NAT silently drops packets to published service-container ports, so the job
|
||||
# host can't reach a `services:` container (connect black-holes -> the wait step
|
||||
# times out with exit 124). `services:` always uses bridge networking and can't
|
||||
# be overridden, so we use `docker run --network host` instead. Readiness is
|
||||
# checked via `docker exec`, which doesn't depend on host->container networking.
|
||||
run: |
|
||||
docker run -d --name falkordb --network host falkordb/falkordb:latest
|
||||
docker run -d --name neo4j --network host \
|
||||
-e NEO4J_AUTH=neo4j/testpass \
|
||||
-e NEO4J_PLUGINS='["apoc"]' \
|
||||
neo4j:5.26-community
|
||||
- name: Install dependencies
|
||||
run: uv sync --all-extras
|
||||
- name: Wait for databases
|
||||
run: |
|
||||
for i in $(seq 1 30); do
|
||||
if docker exec falkordb redis-cli ping 2>/dev/null | grep -q PONG; then
|
||||
echo "falkordb ready after ${i}s"; break
|
||||
fi
|
||||
if [ "$i" -eq 30 ]; then echo "falkordb did not become ready in 30s" >&2; docker logs falkordb; exit 1; fi
|
||||
sleep 1
|
||||
done
|
||||
for i in $(seq 1 60); do
|
||||
if docker exec neo4j cypher-shell -u neo4j -p testpass 'RETURN 1' >/dev/null 2>&1; then
|
||||
echo "neo4j ready after ${i}s"; break
|
||||
fi
|
||||
if [ "$i" -eq 60 ]; then echo "neo4j did not become ready in 60s" >&2; docker logs neo4j; exit 1; fi
|
||||
sleep 1
|
||||
done
|
||||
- name: Run database integration tests
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
NEO4J_URI: bolt://127.0.0.1:7687
|
||||
NEO4J_USER: neo4j
|
||||
NEO4J_PASSWORD: testpass
|
||||
FALKORDB_HOST: 127.0.0.1
|
||||
FALKORDB_PORT: 6379
|
||||
DISABLE_NEPTUNE: 1
|
||||
run: |
|
||||
uv run pytest \
|
||||
tests/test_graphiti_mock.py \
|
||||
tests/test_node_int.py \
|
||||
tests/test_edge_int.py \
|
||||
tests/cross_encoder/test_bge_reranker_client_int.py \
|
||||
tests/driver/test_falkordb_driver.py \
|
||||
-m "not integration"
|
||||
Reference in New Issue
Block a user