Coverage report: 100%

Files Functions Classes

coverage.py v7.16.2, created at 2026-10-12 18:59 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src/case_router/__init__.py (no function)   100% 1 0 0   100% 0 0   100%
src/case_router/__main__.py main   100% 1 0 0   100% 0 0   100%
src/case_router/__main__.py (no function)   100% 5 0 2   100% 0 0   100%
src/case_router/api.py Settings.from_env   100% 1 0 0   100% 0 0   100%
src/case_router/api.py CaseIn.to_draft   100% 1 0 0   100% 0 0   100%
src/case_router/api.py CaseOut.of   100% 1 0 0   100% 0 0   100%
src/case_router/api.py QueueHealthOut.of   100% 1 0 0   100% 0 0   100%
src/case_router/api.py app_state   100% 1 0 0   100% 0 0   100%
src/case_router/api.py current_tenant   100% 6 0 0   100% 2 0   100%
src/case_router/api.py health   100% 3 0 0   100% 0 0   100%
src/case_router/api.py prometheus_metrics   100% 1 0 0   100% 0 0   100%
src/case_router/api.py submit_case   100% 1 0 0   100% 0 0   100%
src/case_router/api.py list_cases   100% 2 0 0   100% 0 0   100%
src/case_router/api.py get_case   100% 1 0 0   100% 0 0   100%
src/case_router/api.py close_case   100% 1 0 0   100% 0 0   100%
src/case_router/api.py queue_health   100% 1 0 0   100% 0 0   100%
src/case_router/api.py _rules_out   100% 2 0 0   100% 0 0   100%
src/case_router/api.py get_rules   100% 1 0 0   100% 0 0   100%
src/case_router/api.py replace_rules   100% 5 0 0   100% 0 0   100%
src/case_router/api.py _unknown_tenant   100% 1 0 0   100% 0 0   100%
src/case_router/api.py _case_not_found   100% 1 0 0   100% 0 0   100%
src/case_router/api.py _already_closed   100% 1 0 0   100% 0 0   100%
src/case_router/api.py create_app   100% 16 0 0   100% 2 0   100%
src/case_router/api.py create_app.record_latency   100% 5 0 0   100% 0 0   100%
src/case_router/api.py (no function)   100% 102 0 0   100% 0 0   100%
src/case_router/db.py to_db_time   100% 3 0 0   100% 2 0   100%
src/case_router/db.py from_db_time   100% 1 0 0   100% 0 0   100%
src/case_router/db.py Database.__init__   100% 6 0 0   100% 2 0   100%
src/case_router/db.py Database.connect   100% 7 0 0   100% 0 0   100%
src/case_router/db.py TenantRepository.__init__   100% 1 0 0   100% 0 0   100%
src/case_router/db.py TenantRepository.get   100% 3 0 0   100% 0 0   100%
src/case_router/db.py TenantRepository.save   100% 2 0 0   100% 0 0   100%
src/case_router/db.py RuleRepository.__init__   100% 1 0 0   100% 0 0   100%
src/case_router/db.py RuleRepository.for_tenant   100% 3 0 0   100% 0 0   100%
src/case_router/db.py RuleRepository.replace   100% 5 0 0   100% 2 0   100%
src/case_router/db.py _case_from_row   100% 1 0 0   100% 0 0   100%
src/case_router/db.py CaseRepository.__init__   100% 1 0 0   100% 0 0   100%
src/case_router/db.py CaseRepository.insert   100% 5 0 0   100% 0 0   100%
src/case_router/db.py CaseRepository.get   100% 2 0 0   100% 0 0   100%
src/case_router/db.py CaseRepository.find   100% 12 0 0   100% 4 0   100%
src/case_router/db.py CaseRepository.close   100% 6 0 0   100% 2 0   100%
src/case_router/db.py CaseRepository.queue_health   100% 3 0 0   100% 0 0   100%
src/case_router/db.py CaseRepository._fetch   100% 4 0 0   100% 2 0   100%
src/case_router/db.py (no function)   100% 43 0 0   100% 0 0   100%
src/case_router/deadlines.py ResponsePolicy.__post_init__   100% 10 0 0   100% 8 0   100%
src/case_router/deadlines.py ResponsePolicy.window   100% 4 0 0   100% 2 0   100%
src/case_router/deadlines.py ResponsePolicy.respond_by   100% 3 0 0   100% 2 0   100%
src/case_router/deadlines.py (no function)   100% 14 0 0   100% 0 0   100%
src/case_router/errors.py (no function)   100% 3 0 0   100% 0 0   100%
src/case_router/limits.py TokenBucket.__init__   100% 10 0 0   100% 4 0   100%
src/case_router/limits.py TokenBucket._refill   100% 6 0 0   100% 2 0   100%
src/case_router/limits.py TokenBucket.try_acquire   100% 6 0 0   100% 2 0   100%
src/case_router/limits.py TokenBucket.available   100% 3 0 0   100% 0 0   100%
src/case_router/limits.py TenantLimiter.__init__   100% 3 0 0   100% 0 0   100%
src/case_router/limits.py TenantLimiter.bucket_for   100% 6 0 0   100% 2 0   100%
src/case_router/limits.py TenantLimiter.acquire   100% 1 0 0   100% 0 0   100%
src/case_router/limits.py (no function)   100% 21 0 0   100% 0 0   100%
src/case_router/metrics.py Metrics.__init__   100% 6 0 0   100% 0 0   100%
src/case_router/metrics.py (no function)   100% 4 0 0   100% 0 0   100%
src/case_router/models.py Priority.rank   100% 1 0 0   100% 0 0   100%
src/case_router/models.py (no function)   100% 60 0 0   100% 0 0   100%
src/case_router/rules.py RoutingRule.__init__   100% 3 0 0   100% 2 0   100%
src/case_router/rules.py RoutingRule.name   100% 0 0 0   100% 0 0   100%
src/case_router/rules.py RoutingRule.matches   100% 0 0 0   100% 0 0   100%
src/case_router/rules.py RoutingRule.__repr__   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py MinimumPriorityRule.__init__   100% 2 0 0   100% 0 0   100%
src/case_router/rules.py MinimumPriorityRule.name   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py MinimumPriorityRule.matches   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py TierRule.__init__   100% 2 0 0   100% 0 0   100%
src/case_router/rules.py TierRule.name   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py TierRule.matches   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py ChannelRule.__init__   100% 2 0 0   100% 0 0   100%
src/case_router/rules.py ChannelRule.name   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py ChannelRule.matches   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py KeywordRule.__init__   100% 7 0 0   100% 2 0   100%
src/case_router/rules.py KeywordRule.name   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py KeywordRule.matches   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py AnyRule.name   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py AnyRule.matches   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py RuleSet.__init__   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py RuleSet.route   100% 4 0 0   100% 4 0   100%
src/case_router/rules.py RuleSet.__iter__   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py RuleSet.__len__   100% 1 0 0   100% 0 0   100%
src/case_router/rules.py build_rule   100% 4 0 0   100% 2 0   100%
src/case_router/rules.py (no function)   100% 46 0 0   100% 0 0   100%
src/case_router/seed.py seed_demo_data   100% 6 0 0   100% 4 0   100%
src/case_router/seed.py (no function)   100% 5 0 0   100% 0 0   100%
src/case_router/service.py utc_now   100% 1 0 0   100% 0 0   100%
src/case_router/service.py CaseService.__init__   100% 6 0 0   100% 0 0   100%
src/case_router/service.py CaseService.tenant   100% 4 0 0   100% 2 0   100%
src/case_router/service.py CaseService.rule_set   100% 2 0 0   100% 0 0   100%
src/case_router/service.py CaseService.submit   100% 7 0 0   100% 0 0   100%
src/case_router/service.py CaseService.get   100% 1 0 0   100% 0 0   100%
src/case_router/service.py CaseService.find   100% 1 0 0   100% 0 0   100%
src/case_router/service.py CaseService.close   100% 5 0 0   100% 0 0   100%
src/case_router/service.py CaseService.queue_health   100% 1 0 0   100% 0 0   100%
src/case_router/service.py (no function)   100% 20 0 0   100% 0 0   100%
Total     100% 575 0 2   100% 56 0   100%

No items found using the specified filter.