| #!/bin/bash
|
|
|
|
|
|
|
|
|
| cd "$(dirname "$0")/../../../" || exit 1
|
|
|
|
|
| VERBOSE=false
|
| ENDPOINT=""
|
| TEST_PATH="tests/integration/contracts/"
|
|
|
|
|
| while [[ $# -gt 0 ]]; do
|
| case $1 in
|
| --verbose)
|
| VERBOSE=true
|
| shift
|
| ;;
|
| --endpoint=*)
|
| ENDPOINT="${1#*=}"
|
| shift
|
| ;;
|
| --endpoint)
|
| ENDPOINT="$2"
|
| shift 2
|
| ;;
|
| --help)
|
| echo "Usage: $0 [OPTIONS]"
|
| echo ""
|
| echo "Options:"
|
| echo " --verbose Verbose output (-vv)"
|
| echo " --endpoint=NAME Run specific endpoint tests"
|
| echo " --help Show this help message"
|
| echo ""
|
| echo "Examples:"
|
| echo " $0 # Run all contract tests"
|
| echo " $0 --endpoint=agent # Run agent endpoint tests"
|
| exit 0
|
| ;;
|
| *)
|
| echo "Unknown option: $1"
|
| echo "Use --help for usage information"
|
| exit 1
|
| ;;
|
| esac
|
| done
|
|
|
|
|
| PYTEST_CMD="pytest -m contract"
|
|
|
|
|
| if [ "$VERBOSE" = true ]; then
|
| PYTEST_CMD="$PYTEST_CMD -vv"
|
| else
|
| PYTEST_CMD="$PYTEST_CMD -v"
|
| fi
|
|
|
|
|
| PYTEST_CMD="$PYTEST_CMD $TEST_PATH"
|
|
|
|
|
| if [ -n "$ENDPOINT" ]; then
|
| PYTEST_CMD="$PYTEST_CMD -k $ENDPOINT"
|
| fi
|
|
|
|
|
| PYTEST_CMD="$PYTEST_CMD --tb=short"
|
|
|
|
|
| echo "Running: $PYTEST_CMD"
|
| echo ""
|
| echo "Contract tests validate API schema compliance"
|
| echo ""
|
|
|
|
|
| eval "$PYTEST_CMD"
|
| EXIT_CODE=$?
|
|
|
|
|
| echo ""
|
| if [ $EXIT_CODE -eq 0 ]; then
|
| echo "✓ Contract tests passed - API schemas validated"
|
| else
|
| echo "✗ Contract tests failed - Schema violations detected"
|
| fi
|
|
|
| exit $EXIT_CODE
|
|
|