LGT-Net
LGT-Net copied to clipboard
feat: Set up comprehensive Python testing infrastructure
Set up comprehensive Python testing infrastructure
Summary
This PR establishes a complete testing infrastructure for the LGT-Net project, providing developers with all the tools needed to write and run tests effectively.
Changes Made
Package Management
- ✅ Set up Poetry as the primary package manager
- ✅ Created
pyproject.tomlwith project configuration and dependencies - ✅ Migrated existing dependencies from
requirements.txt(maintained for compatibility)
Testing Framework
- ✅ Added pytest as the main testing framework
- ✅ Configured pytest-cov for coverage reporting with 80% threshold
- ✅ Added pytest-mock for comprehensive mocking utilities
- ✅ Set up custom test markers:
unit,integration,slow
Testing Configuration
- ✅ Comprehensive pytest configuration in
pyproject.toml - ✅ Coverage settings with HTML/XML report generation
- ✅ Test discovery patterns and strict configuration options
- ✅ Source code coverage for all main modules
Directory Structure
- ✅ Created proper testing hierarchy:
-
tests/- Main test directory -
tests/unit/- Unit tests -
tests/integration/- Integration tests -
tests/conftest.py- Shared fixtures and test utilities
-
Shared Testing Utilities
- ✅ Comprehensive fixture collection in
conftest.py:- Temporary directories for file operations
- Mock configuration objects
- Sample data generators (images, tensors, layouts)
- Automatic test environment setup
- Graceful handling of missing dependencies (numpy/torch)
Development Tools
- ✅ Poetry script commands:
poetry run testandpoetry run tests - ✅ Updated
.gitignorewith testing artifacts and development files - ✅ Validation tests to ensure infrastructure works correctly
Running Tests
Installation
# Install all dependencies including testing tools
poetry install
Basic Usage
# Run all tests
poetry run test
# Run with verbose output
poetry run test -v
# Run specific test markers
poetry run test -m unit # Only unit tests
poetry run test -m integration # Only integration tests
poetry run test -m "not slow" # Skip slow tests
Coverage Reports
# Generate coverage reports (already included in default test run)
poetry run test --cov-report=html # HTML report in htmlcov/
poetry run test --cov-report=xml # XML report for CI/CD
Infrastructure Validation
The setup includes validation tests that verify:
- ✅ pytest is working correctly
- ✅ Custom markers are functional
- ✅ Fixtures are properly configured
- ✅ Directory structure is correct
- ✅ Coverage reporting generates properly
- ✅ Both
testandtestscommands work
Notes for Developers
- Ready to use: Infrastructure is complete and validated
- Flexible fixtures: Handles missing dependencies gracefully
- CI/CD ready: XML coverage reports for automated pipelines
- Extensible: Easy to add new fixtures and test utilities
- Standards compliant: Follows Python testing best practices
The testing infrastructure is now ready for developers to start writing comprehensive tests for the LGT-Net codebase.
🤖 Generated with Claude Code