Coverage for e367dd4a314e1a73b620c1a2672fe262cf8a1ff5: 59%

Files Functions Classes

coverage.py v7.6.10, created at 2026-06-04 22:29 +0000

File function statements missing excluded coverage
app/__init__.py (no function) 0 0 0 100%
app/alembic/__init__.py (no function) 0 0 0 100%
app/alembic/env.py get_url 1 1 0 0%
app/alembic/env.py run_migrations_offline 4 4 0 0%
app/alembic/env.py run_migrations_online 7 7 0 0%
app/alembic/env.py (no function) 14 14 0 0%
app/alembic/utils.py read_sql_file 8 1 0 88%
app/alembic/utils.py get_sql_migration_file 6 0 0 100%
app/alembic/utils.py run_sql_statements 11 0 0 100%
app/alembic/utils.py (no function) 7 0 0 100%
app/alembic/versions/__init__.py (no function) 0 0 0 100%
app/alembic/versions/eb3ad385519a_init_database.py upgrade 1 1 0 0%
app/alembic/versions/eb3ad385519a_init_database.py downgrade 1 1 0 0%
app/alembic/versions/eb3ad385519a_init_database.py (no function) 9 9 0 0%
app/analytics/__init__.py (no function) 0 0 0 100%
app/analytics/posthog.py capture_package_requested_events 19 2 0 89%
app/analytics/posthog.py (no function) 8 0 0 100%
app/chart.py generate_altair_colors 20 0 0 100%
app/chart.py generate_chart 33 33 0 0%
app/chart.py (no function) 13 0 0 100%
app/core/__init__.py (no function) 0 0 0 100%
app/core/config.py Settings.validate_sentry_dsn 3 1 0 67%
app/core/config.py Settings.validate_posthog_api_key 3 1 0 67%
app/core/config.py Settings.SQLALCHEMY_DATABASE_URI 5 0 0 100%
app/core/config.py (no function) 22 0 0 100%
app/core/db.py DBConnectionManager.__init__ 4 0 0 100%
app/core/db.py DBConnectionManager._create_engine 4 0 0 100%
app/core/db.py DBConnectionManager._register_event_listeners 3 0 0 100%
app/core/db.py DBConnectionManager._register_event_listeners.apply_conn_settings 8 0 0 100%
app/core/db.py DBConnectionManager.get_engine 2 0 0 100%
app/core/db.py (no function) 20 3 0 85%
app/core/logger.py (no function) 12 3 0 75%
app/core/templates.py (no function) 2 2 0 0%
app/main.py lifespan 2 2 0 0%
app/main.py (no function) 19 19 0 0%
app/models.py TimeRange.date_str 3 0 0 100%
app/models.py (no function) 19 0 0 100%
app/normalization.py normalize_package_name 1 0 0 100%
app/normalization.py (no function) 4 0 0 100%
app/publish.py DuckDBClient.__init__ 7 7 0 0%
app/publish.py DuckDBClient._init_duckdb_client 5 5 0 0%
app/publish.py publish_pypi_downloads_manifest 5 5 0 0%
app/publish.py publish_pypi_downloads 28 28 0 0%
app/publish.py main 25 25 0 0%
app/publish.py (no function) 17 17 0 0%
app/sync.py sync_pypi_packages 33 2 0 94%
app/sync.py sync_pypi_downloads 33 2 0 94%
app/sync.py main 15 15 0 0%
app/sync.py (no function) 13 1 0 92%
app/tests/__init__.py (no function) 0 0 0 100%
app/tests/alembic/__init__.py (no function) 0 0 0 100%
app/tests/alembic/test_utils.py project_root 1 0 0 100%
app/tests/alembic/test_utils.py alembic_migration_file 1 0 0 100%
app/tests/alembic/test_utils.py alembic_sql_upgrade_file 1 0 0 100%
app/tests/alembic/test_utils.py alembic_sql_downgrade_file 1 1 0 0%
app/tests/alembic/test_utils.py test_read_sql_file_missing 2 0 0 100%
app/tests/alembic/test_utils.py test_read_sql_file 4 0 0 100%
app/tests/alembic/test_utils.py test_read_sql_file.normalize_whitespace 1 0 0 100%
app/tests/alembic/test_utils.py test_get_sql_file_name_upgrade 5 0 0 100%
app/tests/alembic/test_utils.py test_get_sql_file_name_downgrade 5 0 0 100%
app/tests/alembic/test_utils.py test_get_sql_file_name_invalid 4 0 0 100%
app/tests/alembic/test_utils.py test_run_sql_statements 9 0 0 100%
app/tests/alembic/test_utils.py test_run_sql_statements_error 4 0 0 100%
app/tests/alembic/test_utils.py (no function) 20 0 0 100%
app/tests/conftest.py test_settings 3 0 0 100%
app/tests/conftest.py run_db_migrations 7 2 0 71%
app/tests/conftest.py db_manager 1 0 0 100%
app/tests/conftest.py read_engine 3 0 0 100%
app/tests/conftest.py write_engine 3 0 0 100%
app/tests/conftest.py (no function) 21 0 0 100%
app/tests/core/__init__.py (no function) 0 0 0 100%
app/tests/core/test_config.py (no function) 0 0 0 100%
app/tests/core/test_db.py test_db_manager_pragma_fk 4 0 0 100%
app/tests/core/test_db.py test_db_manager_pragma_busy_timeout 4 0 0 100%
app/tests/core/test_db.py test_db_manager_pragma_journal_mode 4 0 0 100%
app/tests/core/test_db.py test_db_manager_pragma_synchronous 4 0 0 100%
app/tests/core/test_db.py test_db_manager_url_read_engine 4 0 0 100%
app/tests/core/test_db.py test_db_manager_url_write_engine 4 0 0 100%
app/tests/core/test_db.py (no function) 10 0 0 100%
app/tests/test_analytics_posthog.py DummyResponse.__enter__ 1 0 0 100%
app/tests/test_analytics_posthog.py DummyResponse.__exit__ 1 0 0 100%
app/tests/test_analytics_posthog.py test_capture_package_requested_events_noop 7 0 0 100%
app/tests/test_analytics_posthog.py test_capture_package_requested_events_noop.fake_urlopen 2 2 0 0%
app/tests/test_analytics_posthog.py test_capture_package_requested_events_emits_one_per_package 25 0 0 100%
app/tests/test_analytics_posthog.py test_capture_package_requested_events_emits_one_per_package.fake_urlopen 5 0 0 100%
app/tests/test_analytics_posthog.py (no function) 12 0 0 100%
app/tests/test_chart.py test_generate_altair_colors_first_three 3 0 0 100%
app/tests/test_chart.py test_generate_altair_colors_more_than_three 3 0 0 100%
app/tests/test_chart.py (no function) 3 0 0 100%
app/tests/test_models.py test_time_range_default_value 2 0 0 100%
app/tests/test_models.py test_time_range_valid_values 4 0 0 100%
app/tests/test_models.py test_time_range_invalid_value 2 0 0 100%
app/tests/test_models.py test_time_range_date_str_calculation 4 0 0 100%
app/tests/test_models.py test_time_range_all_time_values 4 0 0 100%
app/tests/test_models.py (no function) 11 0 0 100%
app/tests/test_sync.py test_sync_pypi_packages 6 0 0 100%
app/tests/test_sync.py test_sync_pypi_downloads 8 0 0 100%
app/tests/test_sync.py (no function) 4 0 0 100%
app/tests/test_utils.py test_start_of_week 3 0 0 100%
app/tests/test_utils.py test_parse_query_params 5 0 0 100%
app/tests/test_utils.py test_generate_hx_push_url_packages 3 0 0 100%
app/tests/test_utils.py test_generate_hx_push_url_no_packages 3 0 0 100%
app/tests/test_utils.py test_extract_last_script_tag 6 0 0 100%
app/tests/test_utils.py (no function) 7 0 0 100%
app/utils.py start_of_week 4 0 0 100%
app/utils.py validate_package 6 6 0 0%
app/utils.py parse_query_params 8 2 0 75%
app/utils.py generate_hx_push_url 6 1 0 83%
app/utils.py extract_last_script_tag 8 0 0 100%
app/utils.py validate_date 5 5 0 0%
app/utils.py parse_dates 8 8 0 0%
app/utils.py (no function) 16 0 0 100%
app/views/__init__.py (no function) 0 0 0 100%
app/views/main.py (no function) 6 6 0 0%
app/views/routes/__init__.py (no function) 0 0 0 100%
app/views/routes/home.py home_view 3 3 0 0%
app/views/routes/home.py health_check 1 1 0 0%
app/views/routes/home.py (no function) 10 10 0 0%
app/views/routes/packages.py get_package_list 11 11 0 0%
app/views/routes/packages.py create_package 17 17 0 0%
app/views/routes/packages.py delete_package 14 14 0 0%
app/views/routes/packages.py get_graph 21 21 0 0%
app/views/routes/packages.py get_embed 17 17 0 0%
app/views/routes/packages.py (no function) 21 21 0 0%
app/views/routes/search.py get_search_input 14 14 0 0%
app/views/routes/search.py get_search_results 6 6 0 0%
app/views/routes/search.py (no function) 14 14 0 0%
Total   959 393 0 59%

No items found using the specified filter.