- Replace subprocess call with direct Django test runner invocation
- This allows coverage tool to properly track test execution
- Use django.setup() and get_runner() to run tests directly
- Coverage should now show proper test coverage instead of 1%
- Move run_tests_local.sh to scripts/ directory for consistency
- Remove explicit test module listing from all test scripts
- Let Django auto-discover all tests instead of maintaining explicit lists
- Update README.md to reference new script location
- Simplify scripts/run_tests_with_coverage.py to use auto-discovery
- Reduce maintenance burden by eliminating duplicate test module lists
- Move run_tests_no_ot.sh and run_tests_with_ot.sh to scripts/ directory
- Create scripts/run_tests_with_coverage.py for coverage measurement
- Update CI to use scripts from scripts/ directory
- Eliminate code duplication between shell scripts and CI configuration
- Use Python script with coverage run for proper coverage measurement