mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 10:31:09 -05:00
2.1 KiB
2.1 KiB
Park Search Tests
Overview
Test suite for the park search functionality including:
- Autocomplete widget integration
- Search form validation
- Filter integration
- HTMX interaction
- View mode persistence
Running Tests
# Run all park tests
uv run pytest parks/tests/
# Run specific search tests
uv run pytest parks/tests/test_search.py
# Run with coverage
uv run pytest --cov=parks parks/tests/
Test Coverage
Unit Tests
test_autocomplete_results: Validates search result filteringtest_search_form_valid: Ensures form validation workstest_autocomplete_class: Checks autocomplete configurationtest_search_with_filters: Verifies filter integration
Integration Tests
test_empty_search: Tests default behaviortest_partial_match_search: Validates partial text matchingtest_htmx_request_handling: Ensures HTMX compatibilitytest_view_mode_persistence: Checks view state managementtest_unauthenticated_access: Verifies authentication requirements
Security Tests
Parks search implements a tiered access approach:
- Basic search is public
- Autocomplete requires authentication
- Configuration set in settings.py:
AUTOCOMPLETE_BLOCK_UNAUTHENTICATED = True
Configuration
Tests use pytest-django and require:
- PostgreSQL database
- HTMX middleware
- Autocomplete app configuration
Fixtures
The test suite uses standard Django test fixtures. No additional fixtures required.
Common Issues
-
Database Errors
- Ensure PostGIS extensions are installed
- Verify database permissions
-
HTMX Tests
- Use
HTTP_HX_REQUESTheader for HTMX requests - Check response content for HTMX attributes
- Use
Adding New Tests
When adding tests, ensure:
- Database isolation using
@pytest.mark.django_db - Proper test naming following
test_*convention - Clear test descriptions in docstrings
- Coverage for both success and failure cases
- HTMX interaction testing where applicable
Future Improvements
- Add performance benchmarks
- Include accessibility tests
- Add Playwright e2e tests
- Implement geographic search tests