Coverage report: 96%

Files Functions Classes

coverage.py v7.13.4, created at 2026-04-09 17:38 +0000

File function   statements missing excluded   coverage
technitium_content_filter / __init__.py (no function)   0 0 0   100%
technitium_content_filter / __main__.py (no function)   2 2 0   0%
technitium_content_filter / app.py lifespan   5 5 0   0%
technitium_content_filter / app.py _permission_denied_handler   1 0 0   100%
technitium_content_filter / app.py (no function)   26 0 0   100%
technitium_content_filter / cli.py main   4 4 0   0%
technitium_content_filter / cli.py (no function)   7 7 0   0%
technitium_content_filter / config.py _hkdf_sha256   4 0 0   100%
technitium_content_filter / config.py _derive_key   1 0 0   100%
technitium_content_filter / config.py _get_session_secret   6 0 0   100%
technitium_content_filter / config.py _read_api_token   4 0 0   100%
technitium_content_filter / config.py _as_obj   3 0 0   100%
technitium_content_filter / config.py _as_list   3 0 0   100%
technitium_content_filter / config.py _as_str   1 0 0   100%
technitium_content_filter / config.py _norm_domain   1 0 0   100%
technitium_content_filter / config.py _validate_json_obj   3 0 0   100%
technitium_content_filter / config.py _validate_json_obj_list   7 0 0   100%
technitium_content_filter / config.py _migrate_blocklists   25 0 0   100%
technitium_content_filter / config.py _seed_default_blocklists   15 0 0   100%
technitium_content_filter / config.py load_config   10 0 0   100%
technitium_content_filter / config.py save_config   7 0 0   100%
technitium_content_filter / config.py reload_technitium_config   18 1 0   94%
technitium_content_filter / config.py load_blocked_services   3 0 0   100%
technitium_content_filter / config.py (no function)   44 0 0   100%
technitium_content_filter / controllers / __init__.py render   3 0 0   100%
technitium_content_filter / controllers / __init__.py _json_error   1 0 0   100%
technitium_content_filter / controllers / __init__.py _json_ok   1 0 0   100%
technitium_content_filter / controllers / __init__.py (no function)   11 0 0   100%
technitium_content_filter / controllers / auth.py AuthController.login_page   4 0 0   100%
technitium_content_filter / controllers / auth.py AuthController.login_submit   29 1 0   97%
technitium_content_filter / controllers / auth.py AuthController.logout   3 0 0   100%
technitium_content_filter / controllers / auth.py (no function)   27 0 0   100%
technitium_content_filter / controllers / clients.py ClientController.save   14 0 0   100%
technitium_content_filter / controllers / clients.py ClientController.delete_client   12 0 0   100%
technitium_content_filter / controllers / clients.py (no function)   12 0 0   100%
technitium_content_filter / controllers / pages.py PageController.dashboard   27 1 0   96%
technitium_content_filter / controllers / pages.py PageController.profiles_page   5 0 0   100%
technitium_content_filter / controllers / pages.py PageController.profile_detail   10 0 0   100%
technitium_content_filter / controllers / pages.py PageController.clients_page   2 0 0   100%
technitium_content_filter / controllers / pages.py PageController.settings_page   3 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.services_redirect   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_blocklists   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_allowlists   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_services   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_rules   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_regex   2 0 0   100%
technitium_content_filter / controllers / pages.py RedirectController.filters_rewrites   2 0 0   100%
technitium_content_filter / controllers / pages.py (no function)   36 0 0   100%
technitium_content_filter / controllers / profiles.py _get_profile_by_name   5 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.save   20 1 0   95%
technitium_content_filter / controllers / profiles.py ProfileController.delete_profile   17 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.rename   29 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.get_profile   5 5 0   0%
technitium_content_filter / controllers / profiles.py ProfileController.allowlist_save   12 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.rules_save   12 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.regex_save   27 4 0   85%
technitium_content_filter / controllers / profiles.py ProfileController.rewrite_save   22 0 0   100%
technitium_content_filter / controllers / profiles.py ProfileController.rewrite_delete   13 0 0   100%
technitium_content_filter / controllers / profiles.py (no function)   29 0 0   100%
technitium_content_filter / controllers / services.py _validate_blocklist_url   4 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.services_get   4 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.custom_service_save   12 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.custom_service_delete   12 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.blocklist_save   27 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.blocklist_delete   17 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.blocklist_refresh   3 0 0   100%
technitium_content_filter / controllers / services.py ServiceController.test_domain   159 1 0   99%
technitium_content_filter / controllers / services.py ServiceController.test_domain._result   1 0 0   100%
technitium_content_filter / controllers / services.py (no function)   26 0 0   100%
technitium_content_filter / controllers / settings.py SettingsController.config_get   1 0 0   100%
technitium_content_filter / controllers / settings.py SettingsController.config_set   10 0 0   100%
technitium_content_filter / controllers / settings.py SettingsController.settings_save   17 2 0   88%
technitium_content_filter / controllers / settings.py (no function)   14 0 0   100%
technitium_content_filter / filtering.py _domain_matches   10 0 0   100%
technitium_content_filter / filtering.py _rewrite_matches   10 0 0   100%
technitium_content_filter / filtering.py _regex_matches   8 0 0   100%
technitium_content_filter / filtering.py _resolve_client_profile   38 1 0   97%
technitium_content_filter / filtering.py _check_schedule_active   32 4 0   88%
technitium_content_filter / filtering.py (no function)   12 0 0   100%
technitium_content_filter / guards.py NotAuthenticatedException.__init__   2 0 0   100%
technitium_content_filter / guards.py TokenRedirectException.__init__   2 0 0   100%
technitium_content_filter / guards.py auth_guard   20 0 0   100%
technitium_content_filter / guards.py not_authenticated_handler   4 0 0   100%
technitium_content_filter / guards.py token_redirect_handler   2 0 0   100%
technitium_content_filter / guards.py (no function)   17 0 0   100%
technitium_content_filter / middleware.py _ASGIResponse.__init__   2 0 0   100%
technitium_content_filter / middleware.py _ASGIResponse.__call__   2 0 0   100%
technitium_content_filter / middleware.py RequestSizeLimitMiddleware.__init__   1 0 0   100%
technitium_content_filter / middleware.py RequestSizeLimitMiddleware.__call__   11 2 0   82%
technitium_content_filter / middleware.py RateLimitMiddleware.__init__   1 0 0   100%
technitium_content_filter / middleware.py RateLimitMiddleware.__call__   8 0 0   100%
technitium_content_filter / middleware.py (no function)   14 0 0   100%
technitium_content_filter / rate_limiter.py RateLimiter.__init__   3 0 0   100%
technitium_content_filter / rate_limiter.py RateLimiter.buckets   1 0 0   100%
technitium_content_filter / rate_limiter.py RateLimiter.check   10 0 0   100%
technitium_content_filter / rate_limiter.py RateLimiter.clear   1 0 0   100%
technitium_content_filter / rate_limiter.py (no function)   13 0 0   100%
Total     1136 41 0   96%

No items found using the specified filter.