# Test Requirements for SQLUtils-Python
# Install with: pip install -r requirements-test.txt

# ==========================================
# Core Testing Framework
# ==========================================
pytest==9.0.0  # Main testing framework
pytest-cov==7.0.0  # Coverage plugin for pytest
pytest-xdist==3.8.0  # Parallel test execution
python-dotenv==1.2.1  # For loading .env configuration
mock==5.2.0  # Mocking library for tests

# ==========================================
# Code Quality Tools
# ==========================================
black==25.11.0  # Code formatter
flake8==7.3.0  # Linter
mypy==1.18.2  # Type checker
isort==7.0.0  # Import sorter
coverage==7.11.3  # Coverage visualization

# ==========================================
# Database Drivers for Integration Tests
# ==========================================
# Install the drivers for databases you want to test against
# The test suite will automatically skip tests for unavailable databases

# MySQL drivers
# PyMySQL==1.1.2  # Pure Python MySQL client
# mysql-connector-python==9.3.0  # Official Oracle MySQL connector
# mysqlclient>=2.2.0  # High-performance C-based MySQL client

# PostgreSQL drivers
# psycopg2-binary==2.9.11  # Most popular PostgreSQL adapter
# psycopg>=3.1.0  # Modern PostgreSQL adapter (psycopg3)
# pg8000>=1.30.0  # Pure Python PostgreSQL driver

# Oracle drivers
# oracledb==3.4.0  # Official Oracle Database driver (recommended for Oracle 12c+)
# cx_Oracle==8.3.0  # Legacy Oracle Database driver

# SQL Server drivers
# pyodbc==5.3.0  # ODBC database access (requires ODBC driver installation)
# pymssql==2.3.9  # Pure Python SQL Server client

# Amazon Redshift drivers
# redshift_connector==2.1.5  # Amazon Redshift native connector
# Note: Redshift tests can also use psycopg2 (PostgreSQL driver)

# Google BigQuery drivers
# google-cloud-bigquery==3.38.0  # Official Google BigQuery client
# pandas-gbq>=0.19.0  # Pandas interface to BigQuery

# SQLite (built-in, no installation needed)

# ==========================================
# Notes:
# ==========================================
# - The test suite uses Docker containers for database testing
# - Start test databases with: cd tst/docker && bash db_test.sh start
# - Check database status with: bash db_test.sh status
# - Stop databases with: bash db_test.sh stop
# - Tests automatically skip unavailable databases
# - For full test coverage, install all database drivers
# - Run tests with: python UNIT_TESTS/run_tests.py
# - Run specific database tests with: pytest UNIT_TESTS/ -k mysql
# - Run only unit tests (no database): pytest UNIT_TESTS/ -m unit
# - Skip integration tests: pytest UNIT_TESTS/ --skip-integration
