#!/usr/bin/env python3
"""
Run tests with OpenTelemetry instrumentation and export enabled, plus coverage measurement.
This script is designed to be used with 'coverage run' command.
"""

import os
import sys
import django
from django.conf import settings
from django.test.utils import get_runner


def main():
    # Enable OpenTelemetry instrumentation and export
    os.environ["OTEL_EXPORT_ENABLED"] = "true"
    os.environ["OTEL_SERVICE_NAME"] = "ivatar-test"
    os.environ["OTEL_ENVIRONMENT"] = "test"

    print("Running tests with OpenTelemetry instrumentation and export enabled...")
    print("====================================================================")

    # Add current directory to Python path
    sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

    # Setup Django
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ivatar.settings")
    django.setup()

    # Get Django test runner
    TestRunner = get_runner(settings)
    test_runner = TestRunner()

    # Run tests
    failures = test_runner.run_tests([])

    if failures:
        print(f"Tests failed with {failures} failures")
        return 1
    else:
        print("")
        print(
            "Tests completed successfully (OpenTelemetry instrumentation and export enabled)"
        )
        return 0


if __name__ == "__main__":
    sys.exit(main())
