Coverage for e367dd4a314e1a73b620c1a2672fe262cf8a1ff5:
59%
hide covered
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.