Coverage report: 98%

Files Functions Classes

coverage.py v7.16.2, created at 2026-11-13 19:28 +0000

File   statements missing excluded   coverage
src/data_api/__init__.py   2 0 0   100%
src/data_api/api/__init__.py   1 0 0   100%
src/data_api/api/api.py   107 4 0   96%
src/data_api/api/errors.py   15 0 0   100%
src/data_api/api/main.py   5 5 0   0%
src/data_api/api/routers/__init__.py   2 0 0   100%
src/data_api/api/routers/announcements.py   19 0 0   100%
src/data_api/api/routers/buses.py   36 0 0   100%
src/data_api/api/routers/calendars.py   42 0 0   100%
src/data_api/api/routers/courses.py   63 0 0   100%
src/data_api/api/routers/dining.py   13 0 0   100%
src/data_api/api/routers/directory.py   12 0 0   100%
src/data_api/api/routers/energy.py   10 0 0   100%
src/data_api/api/routers/libraries.py   24 0 0   100%
src/data_api/api/routers/locations.py   14 0 0   100%
src/data_api/api/routers/newsletters.py   17 0 0   100%
src/data_api/api/routers/ping.py   35 0 0   100%
src/data_api/api/schemas/__init__.py   2 0 0   100%
src/data_api/api/schemas/announcements.py   2 0 0   100%
src/data_api/api/schemas/buses.py   8 0 0   100%
src/data_api/api/schemas/calendars.py   2 0 0   100%
src/data_api/api/schemas/courses.py   2 0 0   100%
src/data_api/api/schemas/departments.py   2 0 0   100%
src/data_api/api/schemas/dining.py   2 0 0   100%
src/data_api/api/schemas/energy.py   7 0 0   100%
src/data_api/api/schemas/errors.py   9 0 0   100%
src/data_api/api/schemas/libraries.py   2 0 0   100%
src/data_api/api/schemas/locations.py   5 0 0   100%
src/data_api/api/schemas/meta.py   2 0 0   100%
src/data_api/api/schemas/newsletters.py   2 0 0   100%
src/data_api/api/schemas/ping.py   18 0 0   100%
src/data_api/api/schemas/responses.py   5 0 0   100%
src/data_api/checks/__init__.py   0 0 0   100%
src/data_api/checks/common.py   41 0 0   100%
src/data_api/checks/mcp.py   33 13 0   61%
src/data_api/checks/openapi.py   49 16 0   67%
src/data_api/checks/published.py   125 19 0   85%
src/data_api/checks/release.py   137 22 0   84%
src/data_api/checks/smoke.py   85 10 0   88%
src/data_api/core/__init__.py   1 0 0   100%
src/data_api/core/config.py   1 0 0   100%
src/data_api/core/exceptions.py   15 0 0   100%
src/data_api/core/settings.py   15 0 0   100%
src/data_api/core/upstream.py   23 0 0   100%
src/data_api/data/__init__.py   2 0 0   100%
src/data_api/data/manager.py   3 0 0   100%
src/data_api/data/nthudata.py   268 5 0   98%
src/data_api/data/validation.py   60 0 0   100%
src/data_api/domain/__init__.py   2 0 0   100%
src/data_api/domain/announcements/__init__.py   2 0 0   100%
src/data_api/domain/announcements/services.py   68 0 0   100%
src/data_api/domain/buses/__init__.py   2 0 0   100%
src/data_api/domain/buses/adapters.py   1 0 0   100%
src/data_api/domain/buses/enums.py   29 0 0   100%
src/data_api/domain/buses/graph.py   56 0 0   100%
src/data_api/domain/buses/models.py   11 0 0   100%
src/data_api/domain/buses/query.py   9 0 0   100%
src/data_api/domain/buses/services.py   276 23 0   92%
src/data_api/domain/calendars/__init__.py   0 0 0   100%
src/data_api/domain/calendars/services.py   49 0 0   100%
src/data_api/domain/courses/__init__.py   2 0 0   100%
src/data_api/domain/courses/models.py   87 2 0   98%
src/data_api/domain/courses/services.py   44 0 0   100%
src/data_api/domain/departments/__init__.py   2 0 0   100%
src/data_api/domain/departments/services.py   58 0 0   100%
src/data_api/domain/dining/__init__.py   2 0 0   100%
src/data_api/domain/dining/enums.py   15 0 0   100%
src/data_api/domain/dining/services.py   68 0 0   100%
src/data_api/domain/energy/__init__.py   2 0 0   100%
src/data_api/domain/energy/services.py   35 0 0   100%
src/data_api/domain/libraries/__init__.py   2 0 0   100%
src/data_api/domain/libraries/services.py   77 0 0   100%
src/data_api/domain/locations/__init__.py   2 0 0   100%
src/data_api/domain/locations/services.py   27 1 0   96%
src/data_api/domain/newsletters/__init__.py   2 0 0   100%
src/data_api/domain/newsletters/services.py   42 0 0   100%
src/data_api/mcp/__init__.py   2 0 0   100%
src/data_api/mcp/errors.py   16 0 0   100%
src/data_api/mcp/server.py   27 1 2   96%
src/data_api/mcp/tools/__init__.py   10 0 0   100%
src/data_api/mcp/tools/announcements.py   15 0 0   100%
src/data_api/mcp/tools/buses.py   23 0 0   100%
src/data_api/mcp/tools/courses.py   33 0 0   100%
src/data_api/mcp/tools/dining.py   16 0 0   100%
src/data_api/mcp/tools/directory.py   9 0 0   100%
src/data_api/mcp/tools/energy.py   16 0 0   100%
src/data_api/mcp/tools/library.py   17 0 0   100%
src/data_api/mcp/tools/locations.py   13 0 0   100%
src/data_api/mcp/tools/newsletters.py   10 0 0   100%
src/data_api/mcp/tools/result_types.py   28 0 0   100%
src/data_api/models/__init__.py   0 0 0   100%
src/data_api/models/announcements.py   18 0 0   100%
src/data_api/models/buses.py   35 0 0   100%
src/data_api/models/calendars.py   17 0 0   100%
src/data_api/models/courses.py   201 0 0   100%
src/data_api/models/departments.py   27 0 0   100%
src/data_api/models/dining.py   15 0 0   100%
src/data_api/models/libraries.py   44 0 0   100%
src/data_api/models/newsletters.py   13 0 0   100%
src/data_api/runtime.py   58 0 0   100%
src/data_api/utils/__init__.py   1 0 0   100%
src/data_api/utils/calendars.py   26 0 0   100%
src/data_api/utils/schema.py   10 0 0   100%
src/data_api/utils/search.py   9 0 0   100%
tests/conftest.py   55 1 0   98%
tests/test_announcements.py   106 0 0   100%
tests/test_api_endpoints.py   130 0 0   100%
tests/test_app_lifespan.py   209 4 0   98%
tests/test_bus_schedule.py   303 1 0   99%
tests/test_buses.py   83 0 0   100%
tests/test_buses_graph.py   118 0 0   100%
tests/test_calendars.py   253 0 0   100%
tests/test_courses.py   79 0 0   100%
tests/test_courses_models.py   72 0 0   100%
tests/test_courses_query_grammar.py   99 0 0   100%
tests/test_courses_semesters.py   215 2 0   99%
tests/test_data_manager.py   498 0 0   100%
tests/test_departments_services.py   12 0 0   100%
tests/test_dining.py   131 0 0   100%
tests/test_directory.py   116 0 0   100%
tests/test_energy.py   26 0 0   100%
tests/test_exceptions.py   45 0 0   100%
tests/test_external_checks.py   172 1 0   99%
tests/test_libraries.py   163 1 0   99%
tests/test_locations.py   76 0 0   100%
tests/test_mcp_metadata.py   17 0 0   100%
tests/test_mcp_search.py   260 0 0   100%
tests/test_mcp_tools.py   250 7 0   97%
tests/test_meta.py   47 1 0   98%
tests/test_newsletters.py   143 0 0   100%
tests/test_openapi_contract.py   115 0 0   100%
tests/test_ping.py   190 2 0   99%
tests/test_refactoring.py   204 0 0   100%
tests/test_release.py   220 0 0   100%
tests/test_removed_endpoints.py   15 0 0   100%
tests/test_rss_contract.py   86 0 0   100%
tests/test_runtime_lifecycle.py   111 1 0   99%
tests/test_schemas.py   43 0 0   100%
tests/test_services.py   56 0 0   100%
tests/test_upstream_errors.py   161 0 0   100%
tests/test_utils.py   48 0 0   100%
Total   7953 142 2   98%

No items found using the specified filter.