Coverage report: 96%

Files Functions Classes

coverage.py v7.11.0, created at 2025-12-20 11:53 +0000

File statements missing excluded coverage
src/app.py 58 58 0 0%
src/couchers/__init__.py 0 0 0 100%
src/couchers/config.py 56 27 0 52%
src/couchers/constants.py 44 0 0 100%
src/couchers/context.py 88 15 0 83%
src/couchers/crypto.py 101 4 0 96%
src/couchers/db.py 116 27 0 77%
src/couchers/descriptor_pool.py 15 0 0 100%
src/couchers/email/__init__.py 26 0 0 100%
src/couchers/email/dev.py 9 0 0 100%
src/couchers/email/smtp.py 49 5 0 90%
src/couchers/experimentation.py 65 45 2 31%
src/couchers/helpers/__init__.py 0 0 0 100%
src/couchers/helpers/badges.py 22 0 0 100%
src/couchers/helpers/clusters.py 24 1 0 96%
src/couchers/helpers/geoip.py 41 31 0 24%
src/couchers/helpers/postal_verification.py 11 0 0 100%
src/couchers/helpers/strong_verification.py 24 0 0 100%
src/couchers/i18n/__init__.py 0 0 0 100%
src/couchers/i18n/constants.py 2 0 0 100%
src/couchers/i18n/i18n.py 60 3 0 95%
src/couchers/interceptors.py 232 32 0 86%
src/couchers/jobs/__init__.py 0 0 0 100%
src/couchers/jobs/enqueue.py 7 0 0 100%
src/couchers/jobs/handlers.py 519 39 0 92%
src/couchers/jobs/worker.py 109 20 0 82%
src/couchers/materialized_views.py 90 1 0 99%
src/couchers/metrics.py 104 0 0 100%
src/couchers/migrations/env.py 38 15 0 61%
src/couchers/models/__init__.py 20 0 0 100%
src/couchers/models/activeness_probe.py 25 0 2 100%
src/couchers/models/auth.py 50 2 2 96%
src/couchers/models/background_jobs.py 31 0 0 100%
src/couchers/models/base.py 9 0 0 100%
src/couchers/models/clusters.py 110 2 0 98%
src/couchers/models/conversations.py 84 4 2 95%
src/couchers/models/discussions.py 59 0 0 100%
src/couchers/models/donations.py 32 0 2 100%
src/couchers/models/events.py 118 0 0 100%
src/couchers/models/host_requests.py 72 2 4 97%
src/couchers/models/logging.py 25 0 0 100%
src/couchers/models/mod_note.py 22 1 2 95%
src/couchers/models/moderation.py 62 3 2 95%
src/couchers/models/notifications.py 164 1 0 99%
src/couchers/models/postal_verification.py 41 1 2 98%
src/couchers/models/rest.py 249 1 0 99%
src/couchers/models/static.py 18 0 0 100%
src/couchers/models/uploads.py 51 0 2 100%
src/couchers/models/users.py 229 0 3 100%
src/couchers/models/verification.py 71 0 2 100%
src/couchers/moderation/__init__.py 0 0 0 100%
src/couchers/moderation/utils.py 13 0 0 100%
src/couchers/notifications/__init__.py 0 0 0 100%
src/couchers/notifications/background.py 96 21 0 78%
src/couchers/notifications/expo_api.py 33 20 0 39%
src/couchers/notifications/notify.py 16 0 0 100%
src/couchers/notifications/push.py 16 1 0 94%
src/couchers/notifications/quick_links.py 65 14 0 78%
src/couchers/notifications/render.py 269 37 0 86%
src/couchers/notifications/send_raw_push_notification.py 94 64 0 32%
src/couchers/notifications/settings.py 61 4 0 93%
src/couchers/notifications/utils.py 2 0 0 100%
src/couchers/notifications/web_push_api.py 37 16 0 57%
src/couchers/phone/check.py 8 1 0 88%
src/couchers/phone/sms.py 27 0 0 100%
src/couchers/postal/__init__.py 0 0 0 100%
src/couchers/postal/address_validation.py 15 0 0 100%
src/couchers/postal/postcard_service.py 9 1 0 89%
src/couchers/rate_limits/__init__.py 0 0 0 100%
src/couchers/rate_limits/check.py 30 0 0 100%
src/couchers/rate_limits/definitions.py 22 0 0 100%
src/couchers/reranker.py 20 2 0 90%
src/couchers/resources.py 66 4 0 94%
src/couchers/server.py 72 0 0 100%
src/couchers/servicers/__init__.py 0 0 0 100%
src/couchers/servicers/account.py 310 19 0 94%
src/couchers/servicers/admin.py 347 108 0 69%
src/couchers/servicers/api.py 411 14 0 97%
src/couchers/servicers/auth.py 294 37 0 87%
src/couchers/servicers/blocking.py 41 2 0 95%
src/couchers/servicers/bugs.py 43 2 0 95%
src/couchers/servicers/communities.py 194 32 0 84%
src/couchers/servicers/conversations.py 295 26 0 91%
src/couchers/servicers/discussions.py 60 6 0 90%
src/couchers/servicers/donations.py 66 3 0 95%
src/couchers/servicers/editor.py 137 4 0 97%
src/couchers/servicers/events.py 499 80 0 84%
src/couchers/servicers/galleries.py 107 4 0 96%
src/couchers/servicers/gis.py 31 7 0 77%
src/couchers/servicers/groups.py 108 22 0 80%
src/couchers/servicers/jail.py 66 2 0 97%
src/couchers/servicers/media.py 22 1 0 95%
src/couchers/servicers/moderation.py 151 24 0 84%
src/couchers/servicers/notifications.py 111 8 0 93%
src/couchers/servicers/pages.py 148 8 0 95%
src/couchers/servicers/postal_verification.py 123 7 0 94%
src/couchers/servicers/public.py 67 20 0 70%
src/couchers/servicers/references.py 143 4 0 97%
src/couchers/servicers/reporting.py 16 0 0 100%
src/couchers/servicers/requests.py 292 19 0 93%
src/couchers/servicers/resources.py 16 0 0 100%
src/couchers/servicers/search.py 269 34 0 87%
src/couchers/servicers/threads.py 121 9 0 93%
src/couchers/sql.py 67 1 8 99%
src/couchers/tasks.py 74 3 0 96%
src/couchers/templates/__init__.py 0 0 0 100%
src/couchers/templates/v2.py 98 1 0 99%
src/couchers/tracing.py 19 8 0 58%
src/couchers/urls.py 74 4 0 95%
src/couchers/utils.py 179 13 0 93%
src/tests/conftest.py 7 1 0 86%
src/tests/test_account.py 701 1 0 99%
src/tests/test_activeness_probes.py 96 0 0 100%
src/tests/test_admin.py 452 0 0 100%
src/tests/test_api.py 1087 0 0 100%
src/tests/test_app.py 13 0 0 100%
src/tests/test_auth.py 601 0 0 100%
src/tests/test_bg_jobs.py 647 3 0 99%
src/tests/test_blocking.py 176 0 0 100%
src/tests/test_bugs.py 83 0 0 100%
src/tests/test_communities.py 662 0 0 100%
src/tests/test_conversations.py 1041 0 0 100%
src/tests/test_crypto.py 42 0 0 100%
src/tests/test_db.py 129 0 0 100%
src/tests/test_discussions.py 110 0 0 100%
src/tests/test_donations.py 156 0 0 100%
src/tests/test_dummy_data.py 9 0 0 100%
src/tests/test_editor.py 290 0 0 100%
src/tests/test_email.py 236 0 0 100%
src/tests/test_events.py 1199 0 0 100%
src/tests/test_fixtures.py 636 10 0 98%
src/tests/test_galleries.py 359 0 0 100%
src/tests/test_gis.py 32 0 0 100%
src/tests/test_groups.py 254 0 0 100%
src/tests/test_i18n.py 53 0 0 100%
src/tests/test_interceptors.py 281 0 0 100%
src/tests/test_jail.py 233 0 0 100%
src/tests/test_media.py 31 0 0 100%
src/tests/test_model_constraints.py 80 0 0 100%
src/tests/test_models.py 26 0 0 100%
src/tests/test_moderation.py 999 0 0 100%
src/tests/test_notifications.py 542 3 0 99%
src/tests/test_pages.py 506 0 0 100%
src/tests/test_postal_verification.py 295 0 0 100%
src/tests/test_public.py 83 0 0 100%
src/tests/test_references.py 592 0 0 100%
src/tests/test_reporting.py 30 0 0 100%
src/tests/test_requests.py 722 2 0 99%
src/tests/test_resources.py 53 0 0 100%
src/tests/test_search.py 428 0 0 100%
src/tests/test_strong_verification.py 373 1 0 99%
src/tests/test_templates.py 39 0 0 100%
src/tests/test_threads.py 93 0 0 100%
src/tests/test_utils.py 28 0 0 100%
src/tests/test_verification.py 159 0 0 100%
src/tests/test_visible_users.py 47 0 0 100%
Total 24133 1078 35 96%

No items found using the specified filter.