#!/bin/bash set -e # Exit on error # Function to check command exists check_command() { if ! command -v $1 &> /dev/null; then echo "Error: $1 is required but not installed." exit 1 fi } # Check required commands check_command uv check_command playwright # Clean up any existing test data echo "Cleaning up any existing test data..." uv run manage.py cleanup_test_data || true # Install Python dependencies echo "Installing Python dependencies..." uv pip install -r requirements.txt # Install Playwright browsers echo "Installing Playwright browsers..." playwright install chromium firefox webkit # Create test users echo "Creating test users..." uv run manage.py create_test_users # Make cleanup script executable chmod +x tests/e2e/cleanup.sh echo "Setup complete! You can now:" echo "1. Run all tests: pytest tests/e2e/" echo "2. Run specific tests: pytest tests/e2e/test_auth.py" echo "3. Run with specific browser: pytest --browser firefox tests/e2e/" echo "4. Clean up test data: ./tests/e2e/cleanup.sh"