| app/backend/src/app.py |
_run_api_server |
|
0% |
18 |
18 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/app.py |
start_api_worker |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/app.py |
log_unhandled_exception |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/app.py |
common_init |
|
0% |
8 |
8 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/app.py |
main |
|
0% |
33 |
33 |
0 |
|
0% |
16 |
0 |
|
0% |
| app/backend/src/app.py |
(no function) |
|
0% |
39 |
39 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/couchers/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/abuse.py |
nonvisible_user_state |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/abuse.py |
maybe_log_nonvisible_user_access |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/abuse.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
Config.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
Config.copy_from |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
Config.copy |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
Config.check |
|
57% |
28 |
12 |
0 |
|
59% |
32 |
13 |
|
58% |
| app/backend/src/couchers/config.py |
Config.load_from_env |
|
96% |
23 |
1 |
0 |
|
95% |
20 |
1 |
|
95% |
| app/backend/src/couchers/config.py |
Config.__getitem__ |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/config.py |
Config.__setitem__ |
|
70% |
10 |
3 |
0 |
|
62% |
8 |
1 |
|
67% |
| app/backend/src/couchers/config.py |
Config.__delitem__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
Config.get |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/config.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/constants.py |
(no function) |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
NonInteractiveAbortException.__init__ |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/context.py |
NonInteractiveAbortException.code |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/context.py |
NonInteractiveAbortException.details |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/context.py |
NonInteractiveAbortException.__str__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/context.py |
CouchersContext.__init__ |
|
89% |
19 |
2 |
0 |
|
75% |
8 |
2 |
|
85% |
| app/backend/src/couchers/context.py |
CouchersContext.__verify_interactive |
|
50% |
2 |
1 |
0 |
|
50% |
2 |
1 |
|
50% |
| app/backend/src/couchers/context.py |
CouchersContext.__verify_logged_in |
|
50% |
2 |
1 |
0 |
|
50% |
2 |
1 |
|
50% |
| app/backend/src/couchers/context.py |
CouchersContext.is_logged_in |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.is_logged_out |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.abort |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/context.py |
CouchersContext.abort_with_error_code |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/context.py |
CouchersContext.set_cookies |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.set_response_headers |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext._send_cookies |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.headers |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_header |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.user_id |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.is_api_key |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/context.py |
CouchersContext.token |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.localization |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.serialize_shadowed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_boolean_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_string_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_integer_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_float_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext.get_object_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
CouchersContext._get_growthbook |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_interactive_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_one_off_interactive_user_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_media_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_background_user_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_notification_user_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
make_logged_out_context |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/context.py |
(no function) |
|
100% |
48 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
b64encode |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
b64decode |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
b64encode_unpadded |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
b64decode_unpadded |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
_urlsafe_random_b64 |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
urlsafe_secure_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
cookiesafe_secure_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
hash_password |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
verify_password |
|
60% |
5 |
2 |
0 |
|
100% |
0 |
0 |
|
60% |
| app/backend/src/couchers/crypto.py |
random_hex |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
secure_compare |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
generate_hash_signature |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
simple_hash_signature |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/crypto.py |
verify_hash_signature |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
generate_random_5digit_string |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
verify_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
stable_secure_uniform |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
get_secret |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
aead_generate_nonce |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
aead_generate_key |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/crypto.py |
aead_encrypt |
|
100% |
4 |
0 |
0 |
|
50% |
2 |
1 |
|
83% |
| app/backend/src/couchers/crypto.py |
aead_decrypt |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
simple_encrypt |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
simple_decrypt |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
encrypt_proto |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
decrypt_proto |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
create_sofa_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
encode_sofa |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
decode_sofa |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
encrypt_page_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
decrypt_page_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
asym_encrypt |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
asym_decrypt |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
generate_asym_keypair |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
generate_invite_code |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/crypto.py |
(no function) |
|
100% |
60 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
apply_migrations |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
_get_base_engine |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
session_scope |
|
57% |
23 |
10 |
0 |
|
50% |
4 |
2 |
|
56% |
| app/backend/src/couchers/db.py |
worker_repeatable_read_session_scope |
|
57% |
23 |
10 |
0 |
|
50% |
4 |
2 |
|
56% |
| app/backend/src/couchers/db.py |
db_post_fork |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/db.py |
are_friends |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
get_parent_node_at_location |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
_get_node_parents_recursive_cte_subquery |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
get_node_parents_recursively |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
_can_moderate_any_cluster |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/db.py |
can_moderate_node |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
can_moderate_at |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
is_user_in_node_geography |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/db.py |
timezone_at_coordinate |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/db.py |
(no function) |
|
100% |
43 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/descriptor_pool.py |
get_descriptors_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/descriptor_pool.py |
get_descriptor_pool |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/descriptor_pool.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase.string_key_base |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase.get_body_blocks |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase._body_builder |
|
100% |
8 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| app/backend/src/couchers/email/blocks.py |
EmailBase.test_instances |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBase._localize |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
UserInfo.from_protobuf |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
UserInfo.dummy_bob |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.build |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.para |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.quote |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.user |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.action |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder.block |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder._text |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
EmailBlocksBuilder._markup |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/blocks.py |
(no function) |
|
100% |
56 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
create_host_request_attachment |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
create_host_request_calendar |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
create_host_request_event |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
create_host_request_cancellation_attachment |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
create_host_request_cancellation_calendar |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
event_to_calendar |
|
100% |
5 |
0 |
0 |
|
50% |
2 |
1 |
|
86% |
| app/backend/src/couchers/email/calendar_events.py |
calendar_to_attachment |
|
100% |
6 |
0 |
0 |
|
50% |
2 |
1 |
|
88% |
| app/backend/src/couchers/email/calendar_events.py |
get_host_request_event_uid |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/calendar_events.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dev.py |
print_dev_email |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dev.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dump_emails.py |
CommandLineArgs.parse |
|
0% |
6 |
6 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/dump_emails.py |
RenderedVariation.html_filename |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dump_emails.py |
RenderedVariation.plaintext_filename |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dump_emails.py |
_ordered_locales |
|
100% |
3 |
0 |
0 |
|
50% |
2 |
1 |
|
80% |
| app/backend/src/couchers/email/dump_emails.py |
dump_all |
|
100% |
22 |
0 |
0 |
|
83% |
12 |
2 |
|
94% |
| app/backend/src/couchers/email/dump_emails.py |
dump_email |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dump_emails.py |
write_index |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/dump_emails.py |
main |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/dump_emails.py |
(no function) |
|
97% |
33 |
1 |
0 |
|
50% |
2 |
1 |
|
94% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionStartedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionStartedEmail.get_body_blocks |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionStartedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionStartedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionCompletedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionCompletedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionCompletedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionCompletedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionRecoveredEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionRecoveredEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
AccountDeletionRecoveredEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ActivenessProbeEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ActivenessProbeEmail.get_body_blocks |
|
91% |
11 |
1 |
0 |
|
50% |
2 |
1 |
|
85% |
| app/backend/src/couchers/email/emails.py |
ActivenessProbeEmail.from_notification |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ActivenessProbeEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
APIKeyIssuedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
APIKeyIssuedEmail.get_body_blocks |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
APIKeyIssuedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
APIKeyIssuedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BadgeChangedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BadgeChangedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BadgeChangedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BadgeChangedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BadgeChangedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BirthdateChangedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BirthdateChangedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BirthdateChangedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
BirthdateChangedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessageReceivedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.get_preview_line |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.get_body_blocks |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.from_notification |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ChatMessagesMissedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.from_notification |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
DiscussionCreatedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.from_notification |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DiscussionCommentEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DonationReceivedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DonationReceivedEmail.get_body_blocks |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DonationReceivedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
DonationReceivedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangeConfirmationEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangeConfirmationEmail.get_body_blocks |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailChangeConfirmationEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailVerifiedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailVerifiedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EmailVerifiedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventInfo.get_details_block |
|
79% |
14 |
3 |
0 |
|
75% |
4 |
1 |
|
78% |
| app/backend/src/couchers/email/emails.py |
EventInfo.get_description_block |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventInfo.get_view_action_block |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventInfo.from_proto |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventInfo.dummy |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.get_body_blocks |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.from_notification |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCreatedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail.get_body_blocks |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail.from_notification |
|
50% |
8 |
4 |
0 |
|
12% |
8 |
1 |
|
31% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail._updated_item_str_to_enum |
|
0% |
13 |
13 |
0 |
|
0% |
10 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail._updated_item_to_string_key |
|
100% |
13 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventUpdatedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventOrganizerInvitedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventOrganizerInvitedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventOrganizerInvitedEmail.get_body_blocks |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventOrganizerInvitedEmail.from_notification |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
EventOrganizerInvitedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.get_body_blocks |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCommentEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventReminderEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventReminderEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventReminderEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventReminderEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventReminderEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCancelledEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCancelledEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCancelledEmail.get_body_blocks |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCancelledEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventCancelledEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventDeletedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventDeletedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventDeletedEmail.get_body_blocks |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
EventDeletedEmail.from_notification |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
EventDeletedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendReferenceReceivedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestReceivedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestReceivedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestReceivedEmail.get_body_blocks |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestReceivedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestReceivedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestAcceptedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestAcceptedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestAcceptedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestAcceptedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
FriendRequestAcceptedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
GenderChangedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
GenderChangedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
GenderChangedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
GenderChangedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.get_body_blocks |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestCreatedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestReminderEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestReminderEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestReminderEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestReminderEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestReminderEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.string_key_base |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.get_body_blocks |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.from_notification |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
HostRequestMessageEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMissedMessagesEmail.string_key_base |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMissedMessagesEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMissedMessagesEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMissedMessagesEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestMissedMessagesEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestStatusChangedEmail.string_key_base |
|
83% |
12 |
2 |
0 |
|
88% |
8 |
1 |
|
85% |
| app/backend/src/couchers/email/emails.py |
HostRequestStatusChangedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestStatusChangedEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostRequestStatusChangedEmail.from_notification |
|
75% |
16 |
4 |
0 |
|
75% |
8 |
2 |
|
75% |
| app/backend/src/couchers/email/emails.py |
HostRequestStatusChangedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.string_role_subkey |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.get_body_blocks |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReceivedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.string_role_subkey |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.get_body_blocks |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
HostReferenceReminderEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ModeratorNoteEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ModeratorNoteEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ModeratorNoteEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
NewBlogPostEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
OnboardingReminderEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
OnboardingReminderEmail.get_body_blocks |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
OnboardingReminderEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordChangedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordChangedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordChangedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetCompletedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetCompletedEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetCompletedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetStartedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetStartedEmail.get_body_blocks |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetStartedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PasswordResetStartedEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PhoneNumberChangeEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PhoneNumberChangeEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PhoneNumberChangeEmail.from_change_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PhoneNumberChangeEmail.from_verify_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PhoneNumberChangeEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationFailedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationFailedEmail.get_body_blocks |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationFailedEmail.from_notification |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationFailedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationPostcardSentEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationPostcardSentEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationPostcardSentEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationPostcardSentEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationSucceededEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationSucceededEmail.get_body_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
PostalVerificationSucceededEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupVerifyEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupVerifyEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupVerifyEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupVerifyEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupContinueEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupContinueEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupContinueEmail.get_body_blocks |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
SignupContinueEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationFailedEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationFailedEmail.get_body_blocks |
|
83% |
12 |
2 |
0 |
|
83% |
6 |
1 |
|
83% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationFailedEmail.from_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationFailedEmail.test_instances |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationSucceededEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationSucceededEmail.get_body_blocks |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
StrongVerificationSucceededEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.string_key_base |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.get_subject_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.get_preview_line |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.get_body_blocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.from_notification |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/email/emails.py |
ThreadReplyEmail.test_instances |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
_localize_host_request_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/emails.py |
(no function) |
|
100% |
487 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/locales.py |
get_emails_i18next |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/locales.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/queuing.py |
_queue_email |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/queuing.py |
queue_email |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/queuing.py |
queue_userless_email |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/email/queuing.py |
queue_system_email |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/queuing.py |
(no function) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
render_email |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
render_plaintext_body |
|
93% |
30 |
2 |
0 |
|
94% |
18 |
1 |
|
94% |
| app/backend/src/couchers/email/rendering.py |
_to_plaintext |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/email/rendering.py |
_get_footer_template_args |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
_get_footer_template_args.localize |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
render_html_body |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
HTMLRenderer.render |
|
90% |
20 |
2 |
0 |
|
92% |
12 |
1 |
|
91% |
| app/backend/src/couchers/email/rendering.py |
HTMLRenderer._merge_action_blocks |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
HTMLRenderer.default |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
HTMLRenderer.from_template |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/rendering.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/smtp.py |
embed_html_relative_images |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/email/smtp.py |
embed_html_relative_images.process_relative_src_match |
|
90% |
10 |
1 |
0 |
|
50% |
2 |
1 |
|
83% |
| app/backend/src/couchers/email/smtp.py |
email_proto_to_message |
|
88% |
25 |
3 |
0 |
|
86% |
14 |
2 |
|
87% |
| app/backend/src/couchers/email/smtp.py |
_add_email_part |
|
100% |
16 |
0 |
0 |
|
80% |
10 |
2 |
|
92% |
| app/backend/src/couchers/email/smtp.py |
send_smtp_email |
|
70% |
10 |
3 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/email/smtp.py |
_replace_header_verbatim |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/couchers/email/smtp.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/event_log.py |
log_event |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/event_log.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_fetch_features |
|
0% |
13 |
13 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/experimentation.py |
_apply_response |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_set_last_fetch_time |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
seconds_since_last_fetch |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_write_cache |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_read_cache |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_refresh_loop |
|
14% |
7 |
6 |
0 |
|
25% |
4 |
1 |
|
18% |
| app/backend/src/couchers/experimentation.py |
_load_local_flags |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
setup_experimentation |
|
96% |
28 |
1 |
0 |
|
88% |
8 |
1 |
|
94% |
| app/backend/src/couchers/experimentation.py |
_record_exposure |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_record_feature_usage |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_create_evaluator |
|
88% |
8 |
1 |
0 |
|
50% |
2 |
1 |
|
80% |
| app/backend/src/couchers/experimentation.py |
_create_evaluator.on_experiment_viewed |
|
100% |
2 |
0 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/experimentation.py |
_create_evaluator.on_feature_usage |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_global_evaluator |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
_feature_value |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
get_global_boolean_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
get_global_string_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
get_global_integer_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/experimentation.py |
get_global_float_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/experimentation.py |
get_global_object_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/experimentation.py |
(no function) |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/badges.py |
user_add_badge |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/helpers/badges.py |
user_remove_badge |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/badges.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/clusters.py |
create_node |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/clusters.py |
create_cluster |
|
93% |
15 |
1 |
0 |
|
50% |
2 |
1 |
|
88% |
| app/backend/src/couchers/helpers/clusters.py |
(no function) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/completed_profile.py |
has_completed_profile |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/helpers/completed_profile.py |
has_completed_profile_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/completed_profile.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/geoip.py |
geoip_approximate_location |
|
13% |
15 |
13 |
0 |
|
25% |
4 |
1 |
|
16% |
| app/backend/src/couchers/helpers/geoip.py |
geoip_asn |
|
11% |
18 |
16 |
0 |
|
17% |
6 |
1 |
|
12% |
| app/backend/src/couchers/helpers/geoip.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/postal_verification.py |
generate_postal_verification_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/postal_verification.py |
has_postal_verification |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/postal_verification.py |
(no function) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/strong_verification.py |
has_strong_verification |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/helpers/strong_verification.py |
get_strong_verification_fields |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/helpers/strong_verification.py |
(no function) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/upload_uses.py |
get_upload_uses |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/helpers/upload_uses.py |
get_upload_uses_for_keys |
|
100% |
16 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/helpers/upload_uses.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/__init__.py |
(no function) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.__init__ |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.__setattr__ |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localized_timezone |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.try_localize_language_name_from_iso639 |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.try_localize_region_name_from_iso3166 |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_string |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_list |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_date |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_date_from_iso |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_datetime |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.localize_time |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.en_utc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
LocalizationContext.from_user |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/context.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
I18Next.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
I18Next.add_translation |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
I18Next.find_string |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
I18Next.localize |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/i18n/i18next.py |
I18Next.localize_with_markup |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.locale |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.load_json_dict |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.load_json_dict.add_strings |
|
86% |
7 |
1 |
0 |
|
83% |
6 |
1 |
|
85% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.add_string |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.find_string |
|
100% |
7 |
0 |
0 |
|
88% |
8 |
1 |
|
93% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.localize |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/i18n/i18next.py |
Translation.localize_with_markup |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/i18n/i18next.py |
String.render |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
String.render_with_markup |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
StringTemplate.can_render |
|
100% |
5 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
StringTemplate.render |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
StringTemplate.render_with_markup |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
StringTemplate._render |
|
92% |
13 |
1 |
0 |
|
90% |
10 |
1 |
|
91% |
| app/backend/src/couchers/i18n/i18next.py |
StringTemplate.parse |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
LocalizationError.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
full_string_key |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/i18n/i18next.py |
(no function) |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
get_supported_locales |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
is_supported_locale |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
to_supported_locale |
|
100% |
18 |
0 |
0 |
|
88% |
8 |
1 |
|
96% |
| app/backend/src/couchers/i18n/locales.py |
get_locale_fallbacks |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
get_babel_locale |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
load_locales |
|
93% |
15 |
1 |
0 |
|
88% |
8 |
1 |
|
91% |
| app/backend/src/couchers/i18n/locales.py |
get_main_i18next |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
get_admin_i18next |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
get_translation_component |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/locales.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
localize_string |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/i18n/localize.py |
localize_list |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
try_localize_language_name_from_iso639 |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/i18n/localize.py |
try_localize_region_name_from_iso3166 |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
localize_date |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
localize_time |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
localize_datetime |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
_get_cldr_date_pattern |
|
94% |
16 |
1 |
0 |
|
90% |
10 |
1 |
|
92% |
| app/backend/src/couchers/i18n/localize.py |
_get_cldr_time_pattern |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/i18n/localize.py |
_combine_cldr_date_time_patterns |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
localize_timezone |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
format_phone_number |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/i18n/localize.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_binned_now |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_try_get_and_update_user_details |
|
100% |
16 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
abort_handler |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
abort_handler.f |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
unauthenticated_handler |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_descriptor_has_sensitive |
|
100% |
13 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_sanitize_plan |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_sanitize_message |
|
73% |
11 |
3 |
0 |
|
60% |
10 |
2 |
|
67% |
| app/backend/src/couchers/interceptors.py |
_sanitized_bytes |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_sanitized_bytes |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_sanitized_bytes |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
_store_log |
|
80% |
10 |
2 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/interceptors.py |
CouchersMiddlewareInterceptor.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
CouchersMiddlewareInterceptor.intercept_service |
|
95% |
39 |
2 |
0 |
|
67% |
6 |
2 |
|
91% |
| app/backend/src/couchers/interceptors.py |
CouchersMiddlewareInterceptor.intercept_service.function_without_couchers_stuff |
|
96% |
49 |
2 |
0 |
|
79% |
14 |
3 |
|
92% |
| app/backend/src/couchers/interceptors.py |
CouchersMiddlewareInterceptor.intercept_service.timed_serde |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
CouchersMiddlewareInterceptor.intercept_service.timed_serde.wrapped |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
parse_headers |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
AbortError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
find_auth_level |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
validate_auth_level |
|
75% |
4 |
1 |
0 |
|
75% |
4 |
1 |
|
75% |
| app/backend/src/couchers/interceptors.py |
check_permissions |
|
100% |
9 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
MediaInterceptor.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
MediaInterceptor.intercept_service |
|
75% |
12 |
3 |
0 |
|
50% |
6 |
3 |
|
67% |
| app/backend/src/couchers/interceptors.py |
MediaInterceptor.intercept_service.function_without_session |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
OTelInterceptor.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
OTelInterceptor.intercept_service |
|
0% |
11 |
11 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/interceptors.py |
OTelInterceptor.intercept_service.tracing_function |
|
0% |
10 |
10 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/interceptors.py |
ErrorSanitizationInterceptor.intercept_service |
|
75% |
8 |
2 |
0 |
|
50% |
4 |
2 |
|
67% |
| app/backend/src/couchers/interceptors.py |
ErrorSanitizationInterceptor.intercept_service.sanitizing_function |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/interceptors.py |
(no function) |
|
100% |
74 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/definitions.py |
JobHandler.__call__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/definitions.py |
JobHandler.__name__ |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/definitions.py |
Job.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/definitions.py |
Job.payload_type |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/definitions.py |
(no function) |
|
100% |
22 |
0 |
4 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/enqueue.py |
queue_job |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/couchers/jobs/enqueue.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_email |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
purge_login_tokens |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
purge_password_reset_tokens |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
purge_account_deletion_tokens |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_message_notifications |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_request_notifications |
|
100% |
20 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_onboarding_emails |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_reference_reminders |
|
100% |
20 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_host_request_reminders |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
add_users_to_email_list |
|
53% |
30 |
14 |
0 |
|
60% |
10 |
2 |
|
55% |
| app/backend/src/couchers/jobs/handlers.py |
add_users_to_email_list.sync_subscriber |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/jobs/handlers.py |
enforce_community_membership |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_recommendation_scores |
|
100% |
60 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_recommendation_scores.poor_man_gaussian |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_recommendation_scores.int_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_recommendation_scores.float_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_badges |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_badges.update_badge |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
finalize_strong_verification |
|
96% |
46 |
2 |
0 |
|
83% |
12 |
2 |
|
93% |
| app/backend/src/couchers/jobs/handlers.py |
send_activeness_probes |
|
97% |
29 |
1 |
0 |
|
81% |
16 |
3 |
|
91% |
| app/backend/src/couchers/jobs/handlers.py |
update_randomized_locations |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
update_randomized_locations.gen_randomized_coords |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
send_event_reminders |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
check_expo_push_receipts |
|
93% |
28 |
2 |
0 |
|
79% |
14 |
3 |
|
88% |
| app/backend/src/couchers/jobs/handlers.py |
send_postal_verification_postcard |
|
86% |
14 |
2 |
0 |
|
50% |
2 |
1 |
|
81% |
| app/backend/src/couchers/jobs/handlers.py |
check_mypostcard_jobs |
|
0% |
8 |
8 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/jobs/handlers.py |
check_database_consistency |
|
67% |
48 |
16 |
0 |
|
53% |
32 |
11 |
|
61% |
| app/backend/src/couchers/jobs/handlers.py |
auto_approve_moderation_queue |
|
100% |
17 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/jobs/handlers.py |
(no function) |
|
100% |
66 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/worker.py |
process_job |
|
90% |
42 |
4 |
0 |
|
100% |
6 |
0 |
|
92% |
| app/backend/src/couchers/jobs/worker.py |
service_jobs |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/jobs/worker.py |
_run_job_and_schedule |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/jobs/worker.py |
run_scheduler |
|
100% |
5 |
0 |
0 |
|
75% |
4 |
1 |
|
89% |
| app/backend/src/couchers/jobs/worker.py |
_run_forever |
|
0% |
12 |
12 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/jobs/worker.py |
start_jobs_scheduler |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/jobs/worker.py |
start_jobs_worker |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/jobs/worker.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
markdown_to_html |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
markdown_to_plaintext |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
html_to_plaintext |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
_HTMLToPlaintext.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
_HTMLToPlaintext.handle_starttag |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
_HTMLToPlaintext.handle_data |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/markup.py |
(no function) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
create_materialized_view_with_different_ddl |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
create_materialized_view_with_different_ddl.create_indexes |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
make_lite_users_selectable |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
make_clustered_users_selectable |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
float_ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/materialized_views.py |
refresh_materialized_views |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
refresh_materialized_views_rapid |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/materialized_views.py |
(no function) |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_in_jobs_duration_histogram |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_duration_histogram |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_setup_errors_counter |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_perf_histograms |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_setup_histogram |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_pool_wait_histogram |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_in_servicer_serde_histogram |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
start_worker_resource_sampler |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/metrics.py |
start_worker_resource_sampler.sample |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/metrics.py |
observe_api_call |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_make_gauge_from_query |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_make_gauge_from_query.f |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_make_labeled_gauge_from_query |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_make_labeled_gauge_from_query.f |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
active_users_by_platform_statement |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_set_active_users_by_platform |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_revenue |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_moderation_action |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_moderation_visibility_transition |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_moderation_queue_item_created |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_moderation_queue_item_resolved |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_moderation_queue_resolution_time |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_nonvisible_user_access |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_bundle_age |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_binary_age |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_update_decision |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_banned_bundle_hit |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_ota_manifest_request |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
observe_native_client_checkin |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_feature_flags_staleness_seconds |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
_stringify_flag_value |
|
88% |
8 |
1 |
0 |
|
83% |
6 |
1 |
|
86% |
| app/backend/src/couchers/metrics.py |
observe_feature_flag_evaluation |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
create_prometheus_server |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
create_prometheus_server.app |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/metrics.py |
(no function) |
|
100% |
157 |
0 |
0 |
|
50% |
2 |
1 |
|
99% |
| app/backend/src/couchers/migrations/env.py |
_next_ordinal |
|
0% |
6 |
6 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/migrations/env.py |
process_revision_directives |
|
0% |
2 |
2 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/migrations/env.py |
include_name |
|
0% |
5 |
5 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/migrations/env.py |
include_object |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/migrations/env.py |
run_migrations_offline |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/migrations/env.py |
run_migrations_online |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/migrations/env.py |
(no function) |
|
87% |
30 |
4 |
0 |
|
33% |
6 |
2 |
|
78% |
| app/backend/src/couchers/models/__init__.py |
(no function) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/activeness_probe.py |
ActivenessProbe.is_pending |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/activeness_probe.py |
(no function) |
|
100% |
24 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/admin.py |
(no function) |
|
100% |
40 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/auth.py |
UserSession.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/auth.py |
LoginToken.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/auth.py |
LoginToken.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/auth.py |
PasswordResetToken.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/auth.py |
PasswordResetToken.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/auth.py |
(no function) |
|
100% |
45 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/background_jobs.py |
BackgroundJob.ready_for_retry |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/background_jobs.py |
BackgroundJob.__repr__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/background_jobs.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/base.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/clusters.py |
Cluster.is_leaf |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/clusters.py |
Page.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/clusters.py |
PageVersion.coordinates |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/clusters.py |
PageVersion.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/clusters.py |
(no function) |
|
100% |
124 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/conversations.py |
Conversation.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/conversations.py |
GroupChat.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/conversations.py |
GroupChatSubscription.muted_display |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/models/conversations.py |
GroupChatSubscription.is_muted |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/conversations.py |
GroupChatSubscription.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/conversations.py |
Message.is_normal_message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/conversations.py |
Message.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/conversations.py |
(no function) |
|
100% |
79 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/discussions.py |
(no function) |
|
100% |
113 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/donations.py |
(no function) |
|
100% |
32 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
EventOccurrence.coordinates |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
EventOccurrence.start_time |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
EventOccurrence._start_time_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
EventOccurrence.end_time |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
EventOccurrence._end_time_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/events.py |
(no function) |
|
100% |
123 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/host_requests.py |
HostRequest.can_write_reference |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/host_requests.py |
HostRequest.can_write_reference_expr |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/host_requests.py |
HostRequest.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/host_requests.py |
(no function) |
|
100% |
73 |
0 |
5 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/logging.py |
(no function) |
|
100% |
94 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/mod_note.py |
ModNote.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/mod_note.py |
ModNote.is_pending |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/mod_note.py |
(no function) |
|
100% |
20 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/moderation.py |
ModerationState.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/moderation.py |
ModerationQueueItem.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/moderation.py |
ModerationLog.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/moderation.py |
get_moderated_models |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/models/moderation.py |
(no function) |
|
100% |
77 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
NotificationTopicAction.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
NotificationTopicAction.unpack |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/notifications.py |
NotificationTopicAction.display |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
NotificationTopicAction.__str__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
Notification.topic |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
Notification.action |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/notifications.py |
(no function) |
|
100% |
157 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/ota.py |
(no function) |
|
100% |
33 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/postal_verification.py |
PostalVerificationAttempt.is_valid |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/postal_verification.py |
PostalVerificationAttempt._is_valid_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/postal_verification.py |
(no function) |
|
100% |
41 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/public_trips.py |
(no function) |
|
100% |
25 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
ContributorForm.is_filled |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
ContributorForm.should_notify |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
SignupFlow.token_is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
SignupFlow.account_is_filled |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
SignupFlow.is_completed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
AccountDeletionToken.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
AccountDeletionToken.__repr__ |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/rest.py |
Reference.should_report |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/rest.py |
(no function) |
|
100% |
258 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/static.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
InitiatedUpload.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
Upload._url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
Upload.thumbnail_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
Upload.full_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
get_avatar_photo_subquery |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
get_avatar_upload |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
has_avatar_photo_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/uploads.py |
(no function) |
|
100% |
53 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.has_completed_my_home |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._has_completed_my_home_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.jailed_missing_tos |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.jailed_missing_community_guidelines |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.jailed_pending_mod_notes |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._jailed_pending_mod_notes_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.jailed_pending_activeness_probe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._jailed_pending_activeness_probe_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.is_jailed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._is_jailed_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.is_missing_location |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.is_visible |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._is_visible_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.is_shadowed |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/models/users.py |
User._is_shadowed_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.coordinates |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.display_joined |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.display_last_active |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.phone_is_verified |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User._phone_is_verified_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.phone_code_expired |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
User.__repr__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/users.py |
(no function) |
|
100% |
228 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt.is_valid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt._is_valid_expression |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt.is_visible |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt._raw_birthdate_match |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt.matches_birthdate |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt._raw_gender_match |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt.matches_gender |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
StrongVerificationAttempt.has_strong_verification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/models/verification.py |
(no function) |
|
100% |
65 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/moderation/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/moderation/utils.py |
create_moderation |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/moderation/utils.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/native_updates.py |
client_info_from_request |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/native_updates.py |
_clock_state |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/native_updates.py |
decide_native_update |
|
100% |
22 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/native_updates.py |
(no function) |
|
100% |
40 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/background.py |
_send_email_notification |
|
100% |
15 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/notifications/background.py |
_send_push_notification |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/background.py |
handle_notification |
|
100% |
26 |
0 |
0 |
|
93% |
14 |
1 |
|
98% |
| app/backend/src/couchers/notifications/background.py |
handle_email_digests |
|
0% |
16 |
16 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/couchers/notifications/background.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/expo_api.py |
send_expo_push_notification |
|
0% |
19 |
19 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/couchers/notifications/expo_api.py |
get_expo_push_receipts |
|
53% |
15 |
7 |
0 |
|
75% |
4 |
1 |
|
58% |
| app/backend/src/couchers/notifications/expo_api.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/locales.py |
get_notifs_i18next |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/locales.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/notify.py |
notify |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/notify.py |
mark_notifications_seen |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/notify.py |
(no function) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/push.py |
push_to_subscription |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/push.py |
_push_to_user |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/notifications/push.py |
push_to_user |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/push.py |
(no function) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
_generate_quick_link |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
decode_quick_link |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/notifications/quick_links.py |
generate_do_not_email |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
generate_unsub_topic_key |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/notifications/quick_links.py |
generate_unsub_topic_action |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
generate_quick_decline_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
can_unsubscribe_topic_key |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/quick_links.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
get_send_email_payload |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
get_notification_email |
|
90% |
102 |
10 |
0 |
|
91% |
98 |
9 |
|
90% |
| app/backend/src/couchers/notifications/render_email.py |
get_source_data_header |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
get_ics_attachment |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
get_list_unsubscribe_header |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
get_topic_action_unsubscribe_text |
|
97% |
71 |
2 |
0 |
|
99% |
68 |
1 |
|
98% |
| app/backend/src/couchers/notifications/render_email.py |
get_topic_key_unsubscribe_text |
|
71% |
7 |
2 |
0 |
|
75% |
4 |
1 |
|
73% |
| app/backend/src/couchers/notifications/render_email.py |
get_email_footer |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_email.py |
UserTemplateArgs.from_protobuf_user |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_email.py |
(no function) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
render_push_notification |
|
90% |
110 |
11 |
0 |
|
91% |
106 |
10 |
|
90% |
| app/backend/src/couchers/notifications/render_push.py |
render_adhoc_push_notification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_get_content |
|
100% |
13 |
0 |
0 |
|
88% |
8 |
1 |
|
95% |
| app/backend/src/couchers/notifications/render_push.py |
_get_string |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_avatar_url_or_default |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_account_deletion__start |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_account_deletion__complete |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_account_deletion__recovered |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_activeness__probe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_api_key__create |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_badge__add |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_badge__remove |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_birthdate__change |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_chat__message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_chat__missed_messages |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_donation__received |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_discussion__create |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_discussion__comment |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_email_address__change |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_email_address__verify |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__create_any |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__create_approved |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__update |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__invite_organizer |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__comment |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__reminder |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__cancel |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_event__delete |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_friend_request__create |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_friend_request__accept |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_gender__change |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_general__new_blog_post |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__create |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__missed_messages |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__reminder |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__accept |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__reject |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__cancel |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_host_request__confirm |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_modnote__create |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_onboarding__reminder |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_password__change |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_password_reset__start |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_password_reset__complete |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_phone_number__change |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_phone_number__verify |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_postal_verification__postcard_sent |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_postal_verification__success |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_postal_verification__failed |
|
0% |
8 |
8 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__receive_friend |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__receive |
|
67% |
6 |
2 |
0 |
|
50% |
2 |
1 |
|
62% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__receive_hosted |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__receive_surfed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__reminder |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__reminder_surfed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_reference__reminder_hosted |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_thread__reply |
|
80% |
10 |
2 |
0 |
|
75% |
4 |
1 |
|
79% |
| app/backend/src/couchers/notifications/render_push.py |
_render_verification__sv_success |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_render_verification__sv_fail |
|
70% |
10 |
3 |
0 |
|
67% |
6 |
2 |
|
69% |
| app/backend/src/couchers/notifications/render_push.py |
_format_host_request_start_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
_format_event_start_datetime |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/render_push.py |
(no function) |
|
100% |
75 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
is_known_invalid_endpoint |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
PushNotificationError.__init__ |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
_send_web_push |
|
0% |
11 |
11 |
0 |
|
0% |
8 |
0 |
|
0% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
_send_expo |
|
0% |
25 |
25 |
0 |
|
0% |
14 |
0 |
|
0% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
send_raw_push_notification_v2 |
|
0% |
32 |
32 |
0 |
|
0% |
8 |
0 |
|
0% |
| app/backend/src/couchers/notifications/send_raw_push_notification.py |
(no function) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/settings.py |
get_preference |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/settings.py |
get_topic_actions_by_delivery_type |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/notifications/settings.py |
reset_preference |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/notifications/settings.py |
set_preference |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/notifications/settings.py |
get_user_setting_groups |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/notifications/settings.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/utils.py |
can_notify_deleted_user |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/utils.py |
get_topic_action_description |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/utils.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/web_push_api.py |
gen_vapid_keys |
|
0% |
5 |
5 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/web_push_api.py |
get_vapid_public_key_from_private_key |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/web_push_api.py |
generate_vapid_authorization |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/web_push_api.py |
send_web_push |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/web_push_api.py |
decode_key |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/notifications/web_push_api.py |
parse_subscription_info |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/notifications/web_push_api.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/perf.py |
start_perf |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/perf.py |
read_perf |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/perf.py |
_before_cursor_execute |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/perf.py |
_after_cursor_execute |
|
91% |
11 |
1 |
0 |
|
83% |
6 |
1 |
|
88% |
| app/backend/src/couchers/perf.py |
register_perf_listeners |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/perf.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/check.py |
is_e164_format |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/check.py |
is_known_operator |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/phone/check.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/sms.py |
generate_random_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/sms.py |
looks_like_a_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/sms.py |
format_message |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/sms.py |
send_sms |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/phone/sms.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/postal/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/postal/address_validation.py |
validate_address |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/postal/address_validation.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/postal/my_postcard.py |
_generate_back_left_side_png |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/postal/my_postcard.py |
_credentials |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/postal/my_postcard.py |
_authenticate |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/postal/my_postcard.py |
_place_order |
|
0% |
5 |
5 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/postal/my_postcard.py |
send_postcard |
|
90% |
10 |
1 |
0 |
|
83% |
6 |
1 |
|
88% |
| app/backend/src/couchers/postal/my_postcard.py |
get_order_ids |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/postal/my_postcard.py |
download_pdf |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/postal/my_postcard.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/profiling.py |
_reconcile |
|
100% |
15 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/profiling.py |
_reconcile_loop |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/profiling.py |
setup_profiling |
|
0% |
5 |
5 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/profiling.py |
(no function) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/check.py |
_get_user_events_in_past_time_interval |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/check.py |
_save_rate_limit_violation |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/check.py |
_user_has_violated_rate_limit_in_past_time_interval |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/check.py |
process_rate_limits_and_check_abort |
|
100% |
11 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/check.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/definitions.py |
_get_user_host_requests_in_past_time_interval |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/definitions.py |
_get_user_friend_requests_in_past_time_interval |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/definitions.py |
_get_user_initiated_chats_in_past_time_interval |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/rate_limits/definitions.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/reranker.py |
reranker |
|
87% |
15 |
2 |
0 |
|
83% |
12 |
2 |
|
85% |
| app/backend/src/couchers/reranker.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_terms_of_service |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_icon |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_region_dict |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_region_code_iso3166_alpha3_to_alpha2 |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
region_is_allowed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_language_dict |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_badge_data |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_badge_dict |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_static_badge_dict |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
language_is_allowed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_postcard_front_image |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_postcard_font |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_postcard_metadata |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
get_postcard_back_left_template |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/resources.py |
copy_resources_to_database |
|
81% |
21 |
4 |
0 |
|
62% |
8 |
1 |
|
76% |
| app/backend/src/couchers/resources.py |
(no function) |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sentry.py |
report_error |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/sentry.py |
report_message |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/sentry.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/server.py |
_InstrumentedThreadPoolExecutor.submit |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/server.py |
create_main_server |
|
97% |
36 |
1 |
0 |
|
50% |
2 |
1 |
|
95% |
| app/backend/src/couchers/server.py |
create_media_server |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/server.py |
(no function) |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
mod_note_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
abort_on_invalid_password |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
_volunteer_info_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.GetAccountInfo |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ChangePasswordV2 |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ChangeEmailV2 |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ChangeLanguagePreference |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.FillContributorForm |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.GetContributorFormInfo |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ChangePhone |
|
100% |
29 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.VerifyPhone |
|
89% |
19 |
2 |
0 |
|
80% |
10 |
2 |
|
86% |
| app/backend/src/couchers/servicers/account.py |
Account.InitiateStrongVerification |
|
89% |
19 |
2 |
0 |
|
67% |
6 |
2 |
|
84% |
| app/backend/src/couchers/servicers/account.py |
Account.GetStrongVerificationAttemptStatus |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/servicers/account.py |
Account.DeleteStrongVerificationData |
|
100% |
14 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.DeleteAccount |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ListModNotes |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ListActiveSessions |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.ListActiveSessions._active_session_to_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.LogOutSession |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.LogOutOtherSessions |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.SetProfilePublicVisibility |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/account.py |
Account.CreateInviteCode |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.DisableInviteCode |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/account.py |
Account.ListInviteCodes |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.GetReminders |
|
100% |
18 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.GetMyVolunteerInfo |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/account.py |
Account.UpdateMyVolunteerInfo |
|
79% |
33 |
7 |
0 |
|
68% |
22 |
7 |
|
75% |
| app/backend/src/couchers/servicers/account.py |
Iris.Webhook |
|
89% |
18 |
2 |
0 |
|
62% |
8 |
1 |
|
81% |
| app/backend/src/couchers/servicers/account.py |
(no function) |
|
100% |
74 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
log_admin_action |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
_live_ota_package_ids |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
_extract_ota_manifest |
|
71% |
14 |
4 |
0 |
|
67% |
6 |
2 |
|
70% |
| app/backend/src/couchers/servicers/admin.py |
_ota_package_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
_user_to_details |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
_content_report_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
_reference_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetUserDetails |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetUser |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/admin.py |
Admin.SearchUsers |
|
61% |
49 |
19 |
0 |
|
57% |
44 |
19 |
|
59% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ChangeUserGender |
|
89% |
9 |
1 |
0 |
|
50% |
2 |
1 |
|
82% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ChangeUserBirthdate |
|
82% |
11 |
2 |
0 |
|
50% |
4 |
2 |
|
73% |
| app/backend/src/couchers/servicers/admin.py |
Admin.AddBadge |
|
92% |
13 |
1 |
0 |
|
88% |
8 |
1 |
|
90% |
| app/backend/src/couchers/servicers/admin.py |
Admin.RemoveBadge |
|
79% |
14 |
3 |
0 |
|
62% |
8 |
3 |
|
73% |
| app/backend/src/couchers/servicers/admin.py |
Admin.SetPassportSexGenderException |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/admin.py |
Admin.BanUser |
|
75% |
8 |
2 |
0 |
|
50% |
4 |
2 |
|
67% |
| app/backend/src/couchers/servicers/admin.py |
Admin.UnbanUser |
|
75% |
8 |
2 |
0 |
|
50% |
4 |
2 |
|
67% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ShadowUser |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/servicers/admin.py |
Admin.UnshadowUser |
|
78% |
9 |
2 |
0 |
|
50% |
4 |
2 |
|
69% |
| app/backend/src/couchers/servicers/admin.py |
Admin.AddAdminNote |
|
94% |
16 |
1 |
0 |
|
83% |
6 |
1 |
|
91% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetContentReport |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetContentReportsForAuthor |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/servicers/admin.py |
Admin.SendModNote |
|
90% |
10 |
1 |
0 |
|
75% |
4 |
1 |
|
86% |
| app/backend/src/couchers/servicers/admin.py |
Admin.MarkUserNeedsLocationUpdate |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/admin.py |
Admin.DeleteUser |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/admin.py |
Admin.RecoverDeletedUser |
|
88% |
8 |
1 |
0 |
|
50% |
2 |
1 |
|
80% |
| app/backend/src/couchers/servicers/admin.py |
Admin.CreateApiKey |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats |
|
94% |
17 |
1 |
0 |
|
50% |
2 |
1 |
|
89% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats.get_chat_user_info |
|
100% |
4 |
0 |
0 |
|
50% |
2 |
1 |
|
83% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats.message_to_pb |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats.get_messages_for_conversation |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats.get_host_request_pb |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetChats.get_group_chat_pb |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.DeleteEvent |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListUserIds |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.EditReferenceText |
|
78% |
9 |
2 |
0 |
|
50% |
4 |
2 |
|
69% |
| app/backend/src/couchers/servicers/admin.py |
Admin.DeleteReference |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetUserReferences |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetFriendRequests |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetFriendRequests.get_chat_user_info |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetFriendRequests.friend_request_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.GetNonvisibleUserAccessLog |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/admin.py |
Admin.EditDiscussion |
|
0% |
8 |
8 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.DeleteDiscussion |
|
75% |
8 |
2 |
0 |
|
50% |
4 |
2 |
|
67% |
| app/backend/src/couchers/servicers/admin.py |
Admin.EditReply |
|
0% |
15 |
15 |
0 |
|
0% |
8 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.AddUsersToModerationUserList |
|
100% |
19 |
0 |
0 |
|
92% |
12 |
1 |
|
97% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListModerationUserLists |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/servicers/admin.py |
Admin.RemoveUserFromModerationUserList |
|
93% |
15 |
1 |
0 |
|
90% |
10 |
1 |
|
92% |
| app/backend/src/couchers/servicers/admin.py |
Admin.CreateAccountDeletionLink |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/admin.py |
Admin.AccessStats |
|
92% |
13 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| app/backend/src/couchers/servicers/admin.py |
Admin.SetLastDonated |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.CreateAdminTag |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListAdminTags |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.AddAdminTagToUser |
|
92% |
13 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/admin.py |
Admin.RemoveAdminTagFromUser |
|
85% |
13 |
2 |
0 |
|
67% |
6 |
2 |
|
79% |
| app/backend/src/couchers/servicers/admin.py |
Admin.SetModScore |
|
0% |
6 |
6 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListAdminActions |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListUserUploads |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/admin.py |
Admin.CreateOTAPackage |
|
85% |
26 |
4 |
0 |
|
80% |
10 |
2 |
|
83% |
| app/backend/src/couchers/servicers/admin.py |
Admin.ListOTAPackages |
|
85% |
13 |
2 |
0 |
|
75% |
8 |
2 |
|
81% |
| app/backend/src/couchers/servicers/admin.py |
Admin.BanOTAPackage |
|
100% |
11 |
0 |
0 |
|
83% |
6 |
1 |
|
94% |
| app/backend/src/couchers/servicers/admin.py |
(no function) |
|
100% |
99 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.Ping |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.GetUser |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/api.py |
API.GetLiteUser |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/api.py |
API.GetLiteUsers |
|
100% |
16 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.UpdateProfile |
|
100% |
162 |
0 |
0 |
|
100% |
158 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.ListFriends |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.RemoveFriend |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.ListMutualFriends |
|
92% |
12 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| app/backend/src/couchers/servicers/api.py |
API.SendFriendRequest |
|
89% |
19 |
2 |
0 |
|
80% |
10 |
2 |
|
86% |
| app/backend/src/couchers/servicers/api.py |
API.SendFriendRequest.create_friend_relationship |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.ListFriendRequests |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.RespondFriendRequest |
|
93% |
14 |
1 |
0 |
|
75% |
4 |
1 |
|
89% |
| app/backend/src/couchers/servicers/api.py |
API.CancelFriendRequest |
|
92% |
12 |
1 |
0 |
|
50% |
2 |
1 |
|
86% |
| app/backend/src/couchers/servicers/api.py |
API.InitiateMediaUpload |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
API.ListBadgeUsers |
|
90% |
10 |
1 |
0 |
|
50% |
2 |
1 |
|
83% |
| app/backend/src/couchers/servicers/api.py |
response_rate_to_pb |
|
100% |
13 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
get_num_references |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/api.py |
user_model_to_pb |
|
97% |
67 |
2 |
0 |
|
96% |
54 |
2 |
|
97% |
| app/backend/src/couchers/servicers/api.py |
lite_user_to_pb |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/couchers/servicers/api.py |
(no function) |
|
100% |
68 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
_auth_res |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
create_session |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
delete_session |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/auth.py |
_username_available |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.SignupFlow |
|
92% |
131 |
11 |
0 |
|
83% |
64 |
9 |
|
89% |
| app/backend/src/couchers/servicers/auth.py |
Auth.UsernameValid |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.Authenticate |
|
100% |
18 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.GetAuthState |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.Deauthenticate |
|
100% |
7 |
0 |
0 |
|
50% |
2 |
1 |
|
89% |
| app/backend/src/couchers/servicers/auth.py |
Auth.ResetPassword |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.CompletePasswordResetV2 |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.ConfirmChangeEmailV2 |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.ConfirmDeleteAccount |
|
92% |
13 |
1 |
0 |
|
50% |
2 |
1 |
|
87% |
| app/backend/src/couchers/servicers/auth.py |
Auth.RecoverAccount |
|
90% |
10 |
1 |
0 |
|
50% |
2 |
1 |
|
83% |
| app/backend/src/couchers/servicers/auth.py |
Auth.Unsubscribe |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
Auth.AntiBot |
|
0% |
14 |
14 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/servicers/auth.py |
Auth.AntiBotPolicy |
|
0% |
6 |
6 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/couchers/servicers/auth.py |
Auth.GetInviteCodeInfo |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth.py |
(no function) |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/auth_unsubscribe.py |
handle_unsubscribe |
|
60% |
30 |
12 |
0 |
|
50% |
12 |
2 |
|
57% |
| app/backend/src/couchers/servicers/auth_unsubscribe.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/blocking.py |
is_not_visible |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/blocking.py |
Blocking.BlockUser |
|
91% |
11 |
1 |
0 |
|
83% |
6 |
1 |
|
88% |
| app/backend/src/couchers/servicers/blocking.py |
Blocking.UnblockUser |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/servicers/blocking.py |
Blocking.GetBlockedUsers |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/blocking.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_ota_multipart_body |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_ota_multipart_body.part |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_native_ota_manifest_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_is_update_id_banned |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_newest_non_banned_ota_package |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_observe_native_check_metrics |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
_fetch_signed_manifest |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs._version |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.Version |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.ReportBug |
|
100% |
17 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.Status |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.GetDescriptors |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.GetNativeUpdateManifest |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.ReportDiagnostics |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.CheckNativeStatus |
|
100% |
17 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.GeolocationSearchInfo |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.GeolocationClickInfo |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.EvaluateFeatureFlag |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
Bugs.LogExperimentExposure |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/bugs.py |
(no function) |
|
100% |
53 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
_parents_to_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
communities_to_pb |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
community_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.GetCommunity |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListCommunities |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.SearchCommunities |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListRecentCommunities |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListGroups |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListAdmins |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/communities.py |
Communities.AddAdmin |
|
87% |
15 |
2 |
0 |
|
80% |
10 |
2 |
|
84% |
| app/backend/src/couchers/servicers/communities.py |
Communities.RemoveAdmin |
|
80% |
15 |
3 |
0 |
|
70% |
10 |
3 |
|
76% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListMembers |
|
80% |
10 |
2 |
0 |
|
50% |
4 |
2 |
|
71% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListNearbyUsers |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListPlaces |
|
0% |
7 |
7 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListGuides |
|
0% |
7 |
7 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListEvents |
|
79% |
24 |
5 |
0 |
|
60% |
10 |
4 |
|
74% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListDiscussions |
|
80% |
10 |
2 |
0 |
|
50% |
4 |
2 |
|
71% |
| app/backend/src/couchers/servicers/communities.py |
Communities.JoinCommunity |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/servicers/communities.py |
Communities.LeaveCommunity |
|
91% |
11 |
1 |
0 |
|
83% |
6 |
1 |
|
88% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListUserCommunities |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
Communities.ListAllCommunities |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/communities.py |
(no function) |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_message_to_pb |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_get_visible_members_for_subscription |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_get_visible_admins_for_subscription |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_user_can_message |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
generate_message_notifications |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_add_message_to_subscription |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_create_chat |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_get_message_subscription |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_get_visible_message_subscription |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_unseen_message_count |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
_mute_info |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.ListGroupChats |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.GetGroupChat |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.GetDirectMessage |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.GetUpdates |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.GetGroupChatMessages |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.MarkLastSeenGroupChat |
|
75% |
8 |
2 |
0 |
|
50% |
4 |
2 |
|
67% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.MuteGroupChat |
|
85% |
13 |
2 |
0 |
|
70% |
10 |
3 |
|
78% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.SetGroupChatArchiveStatus |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.SearchMessages |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.CreateGroupChat |
|
84% |
25 |
4 |
0 |
|
75% |
16 |
4 |
|
80% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.SendMessage |
|
92% |
13 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.SendDirectMessage |
|
81% |
27 |
5 |
0 |
|
64% |
14 |
5 |
|
76% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.EditGroupChat |
|
100% |
11 |
0 |
0 |
|
88% |
8 |
1 |
|
95% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.MakeGroupChatAdmin |
|
82% |
17 |
3 |
0 |
|
75% |
12 |
3 |
|
79% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.RemoveGroupChatAdmin |
|
88% |
17 |
2 |
0 |
|
83% |
12 |
2 |
|
86% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.InviteToGroupChat |
|
89% |
19 |
2 |
0 |
|
83% |
12 |
2 |
|
87% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.RemoveGroupChatUser |
|
77% |
13 |
3 |
0 |
|
62% |
8 |
3 |
|
71% |
| app/backend/src/couchers/servicers/conversations.py |
Conversations.LeaveGroupChat |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/conversations.py |
(no function) |
|
100% |
60 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/discussions.py |
discussion_to_pb |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/discussions.py |
generate_create_discussion_notifications |
|
80% |
10 |
2 |
0 |
|
67% |
6 |
2 |
|
75% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.CreateDiscussion |
|
88% |
24 |
3 |
0 |
|
71% |
14 |
4 |
|
82% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.CreateDiscussion.create_object |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.GetDiscussion |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.UpdateDiscussion |
|
85% |
27 |
4 |
0 |
|
62% |
16 |
6 |
|
77% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.DeleteDiscussion |
|
82% |
11 |
2 |
0 |
|
67% |
6 |
2 |
|
76% |
| app/backend/src/couchers/servicers/discussions.py |
Discussions.ListMyCommunitiesDiscussions |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/discussions.py |
(no function) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/donations.py |
_create_stripe_customer |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/donations.py |
Donations.InitiateDonation |
|
93% |
14 |
1 |
0 |
|
75% |
8 |
2 |
|
86% |
| app/backend/src/couchers/servicers/donations.py |
Donations.GetDonationPortalLink |
|
86% |
7 |
1 |
0 |
|
75% |
4 |
1 |
|
82% |
| app/backend/src/couchers/servicers/donations.py |
Stripe.Webhook |
|
90% |
42 |
4 |
0 |
|
100% |
6 |
0 |
|
92% |
| app/backend/src/couchers/servicers/donations.py |
(no function) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
load_community_geom |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
volunteer_to_pb |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
generate_new_blog_post_notifications |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.CreateCommunity |
|
67% |
12 |
4 |
0 |
|
25% |
4 |
1 |
|
56% |
| app/backend/src/couchers/servicers/editor.py |
Editor.UpdateCommunity |
|
100% |
15 |
0 |
0 |
|
70% |
10 |
3 |
|
88% |
| app/backend/src/couchers/servicers/editor.py |
Editor.ListEventCommunityInviteRequests |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.ListEventCommunityInviteRequests._request_to_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.DecideEventCommunityInviteRequest |
|
87% |
15 |
2 |
0 |
|
75% |
8 |
2 |
|
83% |
| app/backend/src/couchers/servicers/editor.py |
Editor.SendBlogPostNotification |
|
67% |
6 |
2 |
0 |
|
50% |
4 |
2 |
|
60% |
| app/backend/src/couchers/servicers/editor.py |
Editor.MakeUserVolunteer |
|
100% |
15 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.UpdateVolunteer |
|
100% |
25 |
0 |
0 |
|
100% |
20 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.ListVolunteers |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/editor.py |
Editor.ListPostcards |
|
0% |
8 |
8 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/editor.py |
Editor.ListPostcards._attempt_to_pb |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/editor.py |
Editor.DownloadPostcardPdf |
|
0% |
7 |
7 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/couchers/servicers/editor.py |
(no function) |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_is_event_owner |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_is_event_organizer |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_can_moderate_event |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_can_edit_event |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
event_to_pb |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_get_event_and_occurrence_query |
|
100% |
6 |
0 |
0 |
|
75% |
4 |
1 |
|
90% |
| app/backend/src/couchers/servicers/events.py |
_get_event_and_occurrence_one |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_get_event_and_occurrence_one_or_none |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
_check_occurrence_time_validity |
|
100% |
8 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
get_users_to_notify_for_new_event |
|
67% |
9 |
3 |
0 |
|
75% |
4 |
1 |
|
69% |
| app/backend/src/couchers/servicers/events.py |
generate_event_create_notifications |
|
81% |
16 |
3 |
0 |
|
67% |
6 |
2 |
|
77% |
| app/backend/src/couchers/servicers/events.py |
generate_event_update_notifications |
|
90% |
10 |
1 |
0 |
|
75% |
4 |
1 |
|
86% |
| app/backend/src/couchers/servicers/events.py |
generate_event_cancel_notifications |
|
90% |
10 |
1 |
0 |
|
75% |
4 |
1 |
|
86% |
| app/backend/src/couchers/servicers/events.py |
generate_event_delete_notifications |
|
0% |
7 |
7 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/events.py |
Events.CreateEvent |
|
93% |
56 |
4 |
0 |
|
82% |
28 |
5 |
|
89% |
| app/backend/src/couchers/servicers/events.py |
Events.CreateEvent.create_occurrence |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
Events.ScheduleEvent |
|
79% |
38 |
8 |
0 |
|
60% |
20 |
8 |
|
72% |
| app/backend/src/couchers/servicers/events.py |
Events.ScheduleEvent.create_occurrence |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
Events.UpdateEvent |
|
88% |
64 |
8 |
0 |
|
79% |
38 |
8 |
|
84% |
| app/backend/src/couchers/servicers/events.py |
Events.GetEvent |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/events.py |
Events.CancelEvent |
|
75% |
12 |
3 |
0 |
|
50% |
6 |
3 |
|
67% |
| app/backend/src/couchers/servicers/events.py |
Events.RequestCommunityInvite |
|
86% |
22 |
3 |
0 |
|
75% |
12 |
3 |
|
82% |
| app/backend/src/couchers/servicers/events.py |
Events.ListEventOccurrences |
|
84% |
19 |
3 |
0 |
|
67% |
6 |
2 |
|
80% |
| app/backend/src/couchers/servicers/events.py |
Events.ListEventAttendees |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/events.py |
Events.ListEventSubscribers |
|
88% |
8 |
1 |
0 |
|
50% |
2 |
1 |
|
80% |
| app/backend/src/couchers/servicers/events.py |
Events.ListEventOrganizers |
|
88% |
8 |
1 |
0 |
|
50% |
2 |
1 |
|
80% |
| app/backend/src/couchers/servicers/events.py |
Events.TransferEvent |
|
85% |
20 |
3 |
0 |
|
71% |
14 |
4 |
|
79% |
| app/backend/src/couchers/servicers/events.py |
Events.SetEventSubscription |
|
88% |
16 |
2 |
0 |
|
80% |
10 |
2 |
|
85% |
| app/backend/src/couchers/servicers/events.py |
Events.SetEventAttendance |
|
83% |
18 |
3 |
0 |
|
67% |
12 |
4 |
|
77% |
| app/backend/src/couchers/servicers/events.py |
Events.ListMyEvents |
|
96% |
45 |
2 |
0 |
|
86% |
22 |
3 |
|
93% |
| app/backend/src/couchers/servicers/events.py |
Events.ListAllEvents |
|
100% |
14 |
0 |
0 |
|
75% |
4 |
1 |
|
94% |
| app/backend/src/couchers/servicers/events.py |
Events.InviteEventOrganizer |
|
83% |
18 |
3 |
0 |
|
70% |
10 |
3 |
|
79% |
| app/backend/src/couchers/servicers/events.py |
Events.RemoveEventOrganizer |
|
78% |
18 |
4 |
0 |
|
67% |
12 |
4 |
|
73% |
| app/backend/src/couchers/servicers/events.py |
(no function) |
|
100% |
62 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
_get_max_photos_for_user |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
_can_edit_gallery |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
_gallery_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.GetGallery |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.AddPhotoToGallery |
|
100% |
23 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.RemovePhotoFromGallery |
|
92% |
13 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.MovePhoto |
|
93% |
29 |
2 |
0 |
|
83% |
18 |
3 |
|
89% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.UpdatePhotoCaption |
|
92% |
13 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/galleries.py |
Galleries.GetGalleryEditInfo |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/galleries.py |
(no function) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/gis.py |
_build_geojson_select |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/gis.py |
_statement_to_geojson_response |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/gis.py |
GIS.GetUsers |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/gis.py |
GIS.GetClusteredUsers |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/gis.py |
GIS.GetCommunities |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/gis.py |
GIS.GetPlaces |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/gis.py |
GIS.GetGuides |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/servicers/gis.py |
(no function) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/groups.py |
_parents_to_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/groups.py |
group_to_pb |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/groups.py |
Groups.GetGroup |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListAdmins |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListMembers |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListPlaces |
|
0% |
7 |
7 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListGuides |
|
0% |
7 |
7 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListEvents |
|
80% |
15 |
3 |
0 |
|
50% |
4 |
2 |
|
74% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListDiscussions |
|
89% |
9 |
1 |
0 |
|
50% |
2 |
1 |
|
82% |
| app/backend/src/couchers/servicers/groups.py |
Groups.JoinGroup |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/servicers/groups.py |
Groups.LeaveGroup |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| app/backend/src/couchers/servicers/groups.py |
Groups.ListUserGroups |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/groups.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
_get_jail_info |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
Jail.JailInfo |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
Jail.AcceptTOS |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
Jail.SetLocation |
|
89% |
9 |
1 |
0 |
|
50% |
2 |
1 |
|
82% |
| app/backend/src/couchers/servicers/jail.py |
Jail.AcceptCommunityGuidelines |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
Jail.AcknowledgePendingModNote |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/jail.py |
Jail.RespondToActivenessProbe |
|
92% |
12 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/jail.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/media.py |
get_media_auth_interceptor |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/media.py |
get_media_auth_interceptor.is_authorized |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/media.py |
Media.UploadConfirmation |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| app/backend/src/couchers/servicers/media.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
_resolve_queue_item |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
bulk_set_user_content_visibility |
|
100% |
27 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
_enqueue_pending_notifications |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
moderation_state_to_pb |
|
96% |
28 |
1 |
0 |
|
94% |
16 |
1 |
|
95% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.GetModerationQueue |
|
90% |
42 |
4 |
0 |
|
86% |
28 |
2 |
|
89% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.GetModerationState |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.GetModerationLog |
|
94% |
16 |
1 |
0 |
|
90% |
10 |
1 |
|
92% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.ModerateContent |
|
94% |
65 |
4 |
0 |
|
80% |
30 |
6 |
|
89% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation._get_queue_item_for_state |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.SetUserContentVisibility |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/moderation.py |
Moderation.ListModerationStates |
|
94% |
18 |
1 |
0 |
|
90% |
10 |
1 |
|
93% |
| app/backend/src/couchers/servicers/moderation.py |
(no function) |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
get_vapid_public_key |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
notification_to_pb |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.GetNotificationSettings |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.SetNotificationSettings |
|
89% |
18 |
2 |
0 |
|
75% |
8 |
2 |
|
85% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.ListNotifications |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.MarkNotificationSeen |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.MarkAllNotificationsSeen |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.GetVapidPublicKey |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.RegisterPushNotificationSubscription |
|
90% |
10 |
1 |
0 |
|
75% |
4 |
1 |
|
86% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.SendTestPushNotification |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.RegisterMobilePushNotificationSubscription |
|
94% |
18 |
1 |
0 |
|
75% |
8 |
2 |
|
88% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.SendTestMobilePushNotification |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.SendDevPushNotification |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
Notifications.DebugRedeliverPushNotification |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/notifications.py |
(no function) |
|
100% |
40 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
_is_page_owner |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
_can_moderate_page |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
page_to_pb |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
Pages.CreatePlace |
|
92% |
26 |
2 |
0 |
|
86% |
14 |
2 |
|
90% |
| app/backend/src/couchers/servicers/pages.py |
Pages.CreateGuide |
|
93% |
30 |
2 |
0 |
|
88% |
16 |
2 |
|
91% |
| app/backend/src/couchers/servicers/pages.py |
Pages.GetPage |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/servicers/pages.py |
Pages.UpdatePage |
|
93% |
30 |
2 |
0 |
|
92% |
24 |
2 |
|
93% |
| app/backend/src/couchers/servicers/pages.py |
Pages.TransferPage |
|
88% |
16 |
2 |
0 |
|
80% |
10 |
2 |
|
85% |
| app/backend/src/couchers/servicers/pages.py |
Pages.ListUserPlaces |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
Pages.ListUserGuides |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/pages.py |
(no function) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/postal_verification.py |
_attempt_to_address_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.InitiatePostalVerification |
|
88% |
24 |
3 |
0 |
|
93% |
14 |
1 |
|
89% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.ConfirmPostalAddress |
|
92% |
12 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.GetPostalVerificationStatus |
|
96% |
28 |
1 |
0 |
|
86% |
14 |
2 |
|
93% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.VerifyPostalCode |
|
95% |
21 |
1 |
0 |
|
88% |
8 |
1 |
|
93% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.CancelPostalVerification |
|
88% |
8 |
1 |
0 |
|
75% |
4 |
1 |
|
83% |
| app/backend/src/couchers/servicers/postal_verification.py |
PostalVerification.ListPostalVerificationAttempts |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/postal_verification.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
format_volunteer_link |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
_get_public_users |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
_get_signup_page_info |
|
67% |
9 |
3 |
0 |
|
25% |
4 |
1 |
|
54% |
| app/backend/src/couchers/servicers/public.py |
_get_donation_stats |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
_get_volunteers |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
_get_volunteers.format_volunteer |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
Public.GetPublicUsers |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
Public.GetPublicUser |
|
92% |
12 |
1 |
0 |
|
88% |
8 |
1 |
|
90% |
| app/backend/src/couchers/servicers/public.py |
Public.GetSignupPageInfo |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
Public.GetVolunteers |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
Public.GetDonationStats |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public.py |
(no function) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public_trips.py |
_is_description_long_enough |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public_trips.py |
_parse_page_token |
|
50% |
4 |
2 |
0 |
|
50% |
2 |
1 |
|
50% |
| app/backend/src/couchers/servicers/public_trips.py |
_same_gender_filter |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public_trips.py |
public_trip_to_pb |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/public_trips.py |
PublicTrips.CreatePublicTrip |
|
89% |
37 |
4 |
0 |
|
85% |
26 |
4 |
|
87% |
| app/backend/src/couchers/servicers/public_trips.py |
PublicTrips.GetPublicTrip |
|
91% |
11 |
1 |
0 |
|
83% |
6 |
1 |
|
88% |
| app/backend/src/couchers/servicers/public_trips.py |
PublicTrips.ListPublicTrips |
|
85% |
13 |
2 |
0 |
|
67% |
6 |
2 |
|
79% |
| app/backend/src/couchers/servicers/public_trips.py |
PublicTrips.ListPublicTripsByUser |
|
81% |
31 |
6 |
0 |
|
61% |
18 |
5 |
|
73% |
| app/backend/src/couchers/servicers/public_trips.py |
PublicTrips.UpdatePublicTrip |
|
85% |
53 |
8 |
0 |
|
81% |
42 |
8 |
|
83% |
| app/backend/src/couchers/servicers/public_trips.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
reference_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
get_host_req_and_check_can_write_ref |
|
95% |
20 |
1 |
0 |
|
90% |
10 |
1 |
|
93% |
| app/backend/src/couchers/servicers/references.py |
check_valid_reference |
|
75% |
4 |
1 |
0 |
|
75% |
4 |
1 |
|
75% |
| app/backend/src/couchers/servicers/references.py |
get_pending_references_to_write |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.ListReferences |
|
100% |
25 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.WriteFriendReference |
|
95% |
20 |
1 |
0 |
|
88% |
8 |
1 |
|
93% |
| app/backend/src/couchers/servicers/references.py |
References.WriteFriendReference.create_object |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.WriteHostRequestReference |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.WriteHostRequestReference.create_object |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.HostRequestIndicateDidntMeetup |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/references.py |
References.AvailableWriteReferences |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.ListPendingReferencesToWrite |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/references.py |
References.GetHostRequestReferenceStatus |
|
100% |
15 |
0 |
0 |
|
75% |
4 |
1 |
|
95% |
| app/backend/src/couchers/servicers/references.py |
(no function) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/reporting.py |
Reporting.Report |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/reporting.py |
(no function) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
message_to_pb |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
host_request_to_pb |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
_possibly_observe_first_response_time |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
_is_host_request_long_enough |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.CreateHostRequest |
|
100% |
59 |
0 |
0 |
|
100% |
34 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.GetHostRequest |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.ListHostRequests |
|
98% |
44 |
1 |
0 |
|
96% |
26 |
1 |
|
97% |
| app/backend/src/couchers/servicers/requests.py |
Requests.RespondHostRequest |
|
93% |
72 |
5 |
0 |
|
86% |
36 |
5 |
|
91% |
| app/backend/src/couchers/servicers/requests.py |
Requests.RespondHostRequest.count_host_response |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.GetHostRequestMessages |
|
82% |
11 |
2 |
0 |
|
50% |
4 |
2 |
|
73% |
| app/backend/src/couchers/servicers/requests.py |
Requests.SendHostRequestMessage |
|
100% |
24 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.GetHostRequestUpdates |
|
79% |
19 |
4 |
0 |
|
60% |
10 |
4 |
|
72% |
| app/backend/src/couchers/servicers/requests.py |
Requests.MarkLastSeenHostRequest |
|
67% |
15 |
5 |
0 |
|
50% |
10 |
3 |
|
60% |
| app/backend/src/couchers/servicers/requests.py |
Requests.SetHostRequestArchiveStatus |
|
71% |
7 |
2 |
0 |
|
50% |
4 |
2 |
|
64% |
| app/backend/src/couchers/servicers/requests.py |
Requests.GetResponseRate |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
Requests.SendHostRequestFeedback |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/requests.py |
(no function) |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
Resources.GetTermsOfService |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
Resources.GetCommunityGuidelines |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
Resources.GetRegions |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
Resources.GetLanguages |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
Resources.GetBadges |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/resources.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_join_with_space |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/couchers/servicers/search.py |
_build_tsv |
|
100% |
11 |
0 |
0 |
|
67% |
6 |
2 |
|
88% |
| app/backend/src/couchers/servicers/search.py |
_build_doc |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_similarity |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_gen_search_elements |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_gen_search_elements.execute_search_statement |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_search_users |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/servicers/search.py |
_search_pages |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/search.py |
_search_events |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
_search_clusters |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/couchers/servicers/search.py |
_user_search_inner |
|
71% |
91 |
26 |
0 |
|
66% |
70 |
20 |
|
69% |
| app/backend/src/couchers/servicers/search.py |
Search.Search |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
Search.UserSearch |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
Search.UserSearchV2 |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
Search.UserSearchV2._user_to_search_user |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/search.py |
Search.EventSearch |
|
94% |
65 |
4 |
0 |
|
91% |
44 |
2 |
|
93% |
| app/backend/src/couchers/servicers/search.py |
(no function) |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
pack_thread_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
unpack_thread_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
total_num_responses |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
thread_to_pb |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
generate_reply_notifications |
|
86% |
58 |
8 |
0 |
|
72% |
32 |
9 |
|
81% |
| app/backend/src/couchers/servicers/threads.py |
Threads.GetThread |
|
96% |
24 |
1 |
0 |
|
93% |
14 |
1 |
|
95% |
| app/backend/src/couchers/servicers/threads.py |
Threads.PostReply |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
Threads.PostReply.create_object |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/servicers/threads.py |
Threads.UpdateReply |
|
77% |
22 |
5 |
0 |
|
64% |
14 |
5 |
|
72% |
| app/backend/src/couchers/servicers/threads.py |
Threads.DeleteReply |
|
76% |
17 |
4 |
0 |
|
67% |
12 |
4 |
|
72% |
| app/backend/src/couchers/servicers/threads.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/slack.py |
send_slack_message |
|
88% |
8 |
1 |
0 |
|
75% |
4 |
1 |
|
83% |
| app/backend/src/couchers/slack.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
username_or_email |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
username_or_id |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
username_or_email_or_id |
|
86% |
7 |
1 |
0 |
|
83% |
6 |
1 |
|
85% |
| app/backend/src/couchers/sql.py |
_shadow_clause |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
_users_block_each_other |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
users_visible |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
where_users_column_visible |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
users_visible_to_each_other |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
where_user_columns_visible_to_each_other |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
where_moderated_content_visible_to_user_column |
|
100% |
7 |
0 |
0 |
|
50% |
2 |
1 |
|
89% |
| app/backend/src/couchers/sql.py |
where_moderated_content_visible |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
moderation_state_column_visible |
|
100% |
6 |
0 |
0 |
|
75% |
4 |
1 |
|
90% |
| app/backend/src/couchers/sql.py |
_relevant_user_blocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
to_bool |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/sql.py |
(no function) |
|
100% |
20 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/supervisor.py |
supervise |
|
95% |
22 |
1 |
0 |
|
92% |
12 |
1 |
|
94% |
| app/backend/src/couchers/supervisor.py |
supervise.handle_signal |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/supervisor.py |
(no function) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
send_signup_email |
|
100% |
16 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
send_email_changed_confirmation_to_new_email |
|
71% |
7 |
2 |
0 |
|
50% |
4 |
2 |
|
64% |
| app/backend/src/couchers/tasks.py |
send_content_report_email |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
maybe_send_reference_report_email |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
send_rate_limit_violation_report_email |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
send_duplicate_strong_verification_email |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
maybe_send_contributor_form_email |
|
50% |
2 |
1 |
0 |
|
50% |
2 |
1 |
|
50% |
| app/backend/src/couchers/tasks.py |
send_event_community_invite_request_email |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
send_account_deletion_report_email |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
enforce_community_memberships |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
enforce_community_memberships_for_user |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/tasks.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/templating.py |
Jinja2Template.render |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/templating.py |
_get_jinja_env |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/templating.py |
_finalize |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/templating.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/tracing.py |
FeatureFlagRatioSampler.should_sample |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/tracing.py |
FeatureFlagRatioSampler.get_description |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/tracing.py |
setup_tracing |
|
0% |
8 |
8 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/couchers/tracing.py |
(no function) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
app_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
icon_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
profile_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
user_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
edit_profile_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
signup_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
account_settings_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
notification_settings_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
feature_preview_link |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/urls.py |
password_reset_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
host_request_link_host |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/urls.py |
host_request_link_guest |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/urls.py |
host_request |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
messages_link |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/urls.py |
chat_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
event_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
community_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
discussion_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
leave_reference_link |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/couchers/urls.py |
profile_references_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
friend_requests_link |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
media_upload_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
change_email_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
donation_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
donation_cancelled_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
donation_success_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
complete_strong_verification_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
delete_account_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
recover_account_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
unsubscribe_link |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/couchers/urls.py |
quick_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
media_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
console_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
invite_code_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
postal_verification_link |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/urls.py |
(no function) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
is_valid_user_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
is_valid_username |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
is_valid_name |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
is_valid_email |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
Timestamp_from_datetime |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/couchers/utils.py |
Duration_from_timedelta |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
parse_date |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
date_to_api |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
to_aware_datetime |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
to_timezone |
|
80% |
5 |
1 |
0 |
|
75% |
4 |
1 |
|
78% |
| app/backend/src/couchers/utils.py |
now |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
minimum_allowed_birthdate |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
today |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
now_in_timezone |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
today_in_timezone |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
wrap_coordinate |
|
93% |
14 |
1 |
0 |
|
83% |
6 |
1 |
|
90% |
| app/backend/src/couchers/utils.py |
wrap_coordinate.__wrap_gen |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
wrap_coordinate.__wrap_flip |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
wrap_coordinate.__wrap_rem |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
create_coordinate |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
create_polygon_lat_lng |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
create_polygon_lng_lat |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
geojson_to_geom |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
to_multi |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
get_coordinates |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
get_coordinates |
|
100% |
0 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
get_coordinates |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
http_date |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
_create_tasty_cookie |
|
82% |
11 |
2 |
0 |
|
50% |
2 |
1 |
|
77% |
| app/backend/src/couchers/utils.py |
create_session_cookies |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
create_lang_cookie |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
_parse_cookie |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
parse_session_cookie |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
parse_user_id_cookie |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
parse_ui_lang_cookie |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
parse_api_key |
|
75% |
8 |
2 |
0 |
|
67% |
6 |
2 |
|
71% |
| app/backend/src/couchers/utils.py |
parse_sofa_cookie |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
generate_sofa_cookie |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
remove_duplicates_retain_order |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
date_in_timezone |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
millis_from_dt |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
dt_from_millis |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
dt_to_page_token |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
dt_from_page_token |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
last_active_coarsen |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/couchers/utils.py |
not_none |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/utils.py |
is_geom |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| app/backend/src/couchers/utils.py |
(no function) |
|
100% |
65 |
0 |
6 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/healthcheck.py |
(no function) |
|
0% |
5 |
5 |
0 |
|
0% |
2 |
0 |
|
0% |
| app/backend/src/run_locally.py |
parse_env_lines |
|
0% |
5 |
5 |
0 |
|
0% |
4 |
0 |
|
0% |
| app/backend/src/run_locally.py |
read_db_password |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/run_locally.py |
update_env |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/run_locally.py |
main |
|
0% |
10 |
10 |
0 |
|
0% |
6 |
0 |
|
0% |
| app/backend/src/run_locally.py |
(no function) |
|
0% |
9 |
9 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
postgres_engine |
|
83% |
6 |
1 |
0 |
|
50% |
2 |
1 |
|
75% |
| app/backend/src/tests/conftest.py |
postgres_conn |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
testdb_engine |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
testdb_conn |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
setup_testdb |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
_truncate_non_static_tables |
|
100% |
12 |
0 |
0 |
|
88% |
8 |
1 |
|
95% |
| app/backend/src/tests/conftest.py |
db |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
db_class |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
testconfig |
|
100% |
71 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
Flags.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
Flags.set_boolean |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
Flags.set_string |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
Flags.set_integer |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/conftest.py |
Flags.set_float |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/conftest.py |
Flags.set_object |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/conftest.py |
flags |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
FeatureFlags.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
FeatureFlags.set |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
FeatureFlags.set_definition |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
feature_flags |
|
100% |
5 |
0 |
1 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
fast_passwords |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
fast_passwords.fast_hash |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
fast_passwords.fast_verify |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
email_collector |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
push_collector |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
moderator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/conftest.py |
(no function) |
|
100% |
58 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/__init__.py |
(no function) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
create_schema_from_models |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
populate_testing_resources |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
drop_database |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
autocommit_engine |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
make_user |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
generate_user |
|
100% |
36 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
get_user_id_and_token |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
make_friends |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
make_user_block |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
make_user_invisible |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
get_friend_relationship |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
add_users_to_new_moderation_list |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
pg_dump_is_available |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
make_volunteer |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/db.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
process_jobs |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector._mock_queue_email |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.__enter__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.__exit__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.count |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.count_for_recipient |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.count_for_mods |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.count_for_reports |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.pop_for_recipient |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.pop_for_mods |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
EmailCollector.pop_for_reports |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector._mock_push_to_user |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector.__enter__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector.__exit__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector.count_for_user |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
PushCollector.pop_for_user |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_host_request |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_group_chat |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_friend_request |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_event_occurrence |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_comment |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_reply |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_discussion |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_reference |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/misc.py |
Moderator.approve_thread_post |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| app/backend/src/tests/fixtures/misc.py |
(no function) |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
_MockCouchersContext.headers |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/fixtures/sessions.py |
_MockCouchersContext.get_header |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
CookieMetadataPlugin.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
CookieMetadataPlugin.__call__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MetadataKeeperInterceptor.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MetadataKeeperInterceptor.intercept_unary_unary |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeRpcError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeRpcError.code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeRpcError.details |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MockGrpcContext.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MockGrpcContext.abort |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MockGrpcContext.invocation_metadata |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
MockGrpcContext.send_initial_metadata |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/fixtures/sessions.py |
FakeChannel.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeChannel.add_generic_rpc_handlers |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeChannel.unary_unary |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
FakeChannel.unary_unary.fake_handler |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
run_server |
|
100% |
14 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
auth_api_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_api_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_admin_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_editor_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_moderation_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_account_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_jail_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_stripe_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_iris_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
real_bugs_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
media_session |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
api_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
gis_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
public_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
public_trips_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
conversations_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
requests_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
threads_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
discussions_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
donations_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
pages_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
communities_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
groups_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
blocking_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
notifications_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
account_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
search_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
references_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
galleries_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
reporting_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
events_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
postal_verification_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
bugs_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
resources_session |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/fixtures/sessions.py |
(no function) |
|
100% |
136 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_GetAccountInfo |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_donation_banner_no_drive |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_donation_banner_never_donated |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_donation_banner_donated_before_drive |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_donation_banner_donated_after_drive |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_donation_banner_donated_exactly_at_drive_start |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_GetAccountInfo_regression |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_regression |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal_short_password |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal_long_password |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal_insecure_password |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal_wrong_password |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangePasswordV2_normal_no_passwords |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_wrong_password |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_wrong_email |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_invalid_email |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_email_in_use |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_no_change |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_wrong_token |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_tokens_two_hour_window |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_tokens_two_hour_window.two_hours_one_minute_in_future |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_tokens_two_hour_window.one_minute_ago |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2 |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeEmailV2_sends_proper_emails |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ChangeLanguagePreference |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_contributor_form |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_DeleteAccount_start |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_DeleteAccount_message_storage |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_full_delete_account_with_recovery |
|
100% |
78 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_multiple_delete_tokens |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ListActiveSessions_pagination |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ListActiveSessions_details |
|
100% |
33 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ListActiveSessions_details.dummy_geoip |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_LogOutSession |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_LogOutOtherSessions |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_CreateInviteCode |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_DisableInviteCode |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_ListInviteCodes |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_reminders |
|
100% |
69 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_confirm_host_request_reminder |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_my_home_reminder |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
test_volunteer_stuff |
|
100% |
72 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_account.py |
(no function) |
|
100% |
60 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
test_activeness_probes_happy_path_inactive |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
test_activeness_probes_happy_path_active |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
test_activeness_probes_disabled |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
test_activeness_probes_expiry |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_activeness_probes.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_access_by_normal_user |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetNonvisibleUserAccessLog |
|
100% |
27 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetUser |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetUserDetails |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ChangeUserGender |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ChangeUserBirthdate |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_BanUser |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_UnbanUser |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ShadowUser |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_UnshadowUser |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ShadowUser_blank_note |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote_blank |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote_data |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote_both_note_and_data |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote_neither |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddAdminNote_invalid_json |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_admin_content_reports |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_DeleteUser |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_RecoverDeletedUser_after_user_initiated_deletion |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_CreateApiKey |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetChats |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_badges |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_DeleteEvent |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListUserIds |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_EditReferenceText |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_DeleteReference_deprecated |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetUserReferences |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetUserReferences_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetFriendRequests |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetFriendRequests._add_friend_request |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_GetFriendRequests_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AddUsersToModerationUserList |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_RemoveUserFromModerationUserList |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_admin_delete_account_url |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_AccessStats |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_SetLastDonated |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_admin_actions_level |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_admin_actions_on_mutations |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_create_admin_tag |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_create_admin_tag_duplicate |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_create_admin_tag_empty |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_list_admin_tags |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_add_admin_tag_to_user |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_add_admin_tag_to_user_duplicate |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_add_admin_tag_to_user_tag_not_found |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_remove_admin_tag_from_user |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_remove_admin_tag_from_user_not_assigned |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_search_users_by_admin_tag |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_search_users_by_admin_note |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListAdminActions_empty |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListAdminActions_returns_newest_first_with_target_info |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListAdminActions_filter_by_admin_and_target |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListAdminActions_pagination |
|
100% |
14 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListUserUploads |
|
100% |
17 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListUserUploads_pagination |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListUserUploads_uses |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListUserUploads_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_ota_manifest |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_ota_signed_multipart |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_ota_signed_multipart.part |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_patch_ota_cdn |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
_patch_ota_cdn.fake |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_CreateOTAPackage |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_CreateOTAPackage_invalid |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_CreateOTAPackage_rejects_duplicate_version |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_ListOTAPackages |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_BanOTAPackage |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_BanOTAPackage_requires_reason |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
test_BanOTAPackage_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_admin.py |
(no function) |
|
100% |
85 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_ping |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_coords |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_get_user |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_user_model_to_pb_ghost_user |
|
100% |
53 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_user_model_to_pb_ghost_user_blocked |
|
100% |
53 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_viewing_nonvisible_user_profile_is_logged |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_viewing_blocked_user_profile_is_not_logged |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_admin_viewing_ghost_users_sees_full_profile |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_lite_coords |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_lite_get_user |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUsers |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_update_profile |
|
100% |
55 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_update_profile_do_not_email |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_language_abilities |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_pending_friend_request_count |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_friend_request_flow |
|
100% |
79 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_RemoveFriend_regression |
|
100% |
32 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_cant_friend_request_twice |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_cant_friend_request_pending |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_cant_friend_request_already_friends |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_cant_friend_request_incomplete_profile |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_excessive_friend_requests_are_reported |
|
100% |
23 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_ListFriends |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_ListMutualFriends |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_mutual_friends_self |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_CancelFriendRequest |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_accept_friend_request |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_reject_friend_request |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_hosting_preferences |
|
100% |
79 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_badges |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_user_add_badge_is_idempotent |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_ListBadgeUsers_excludes_ghost_users |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUser_ghost_user_by_username |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUser_ghost_user_by_id |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUser_blocked_user |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUser_blocking_user |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUsers_ghost_users |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetLiteUsers_blocked_users |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetUser_ghost_user_by_id |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetUser_blocked_user |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
test_GetUser_blocking_user |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_api.py |
(no function) |
|
100% |
70 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_create_servers |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeProcess.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeProcess.is_alive |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeProcess.terminate |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeProcess.join |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeServer.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeServer.stop |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
FakeServer.wait |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
_as_children |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_supervise_returns_crashed_child_and_drains_the_rest |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_supervise_returns_none_on_graceful_shutdown |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_supervise_returns_none_on_graceful_shutdown.fire_on_register |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_supervise_only_terminates_live_children |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
test_supervise_drains_parent_servers_within_the_shutdown_window |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_app.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
get_session_cookie_tokens |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_UsernameValid |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_incremental |
|
100% |
98 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_funnel_counters |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
_quick_signup |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_basic_login |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_login_part_signed_up_verified_email |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_login_part_signed_up_not_verified_email |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_banned_user |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_shadowed_user_login_logged |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_deleted_user |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_invalid_token |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_password_reset_v2 |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_password_reset_no_such_user |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_password_reset_invalid_token_v2 |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_logout_invalid_token |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_without_password |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_invalid_birthdate |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_invalid_email |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_existing_email |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_banned_user_email |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_deleted_user_email |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_continue_with_email |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_resend_email |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_successful_authenticate |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_unsuccessful_authenticate |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_complete_signup |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_token_regression |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_opt_out_of_newsletter |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_GetAuthState |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_no_feedback_regression |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_banned_username |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_GetInviteCodeInfo |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_GetInviteCodeInfo_no_avatar |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_GetInviteCodeInfo_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_SignupFlow_invite_code |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_with_motivations |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_motivations_incremental |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_motivations_cannot_be_refilled |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_motivations_required |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_motivations_all_options |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
test_signup_motivations_empty_motivations_list |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_auth.py |
(no function) |
|
100% |
63 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
now_5_min_in_future |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
_check_job_counter |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_email_job |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_email_job.mock_print_dev_email |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_purge_login_tokens |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_purge_password_reset_tokens |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_purge_account_deletion_tokens |
|
100% |
16 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_enforce_community_memberships |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_refresh_materialized_views |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_service_jobs |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_service_jobs.raising_sleep |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler.purge_login_tokens |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler.send_message_notifications |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler.mock_monotonic |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler.mock_sleep |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_scheduler.mock_run_job_and_schedule |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_job_retry |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_job_retry.mock_job |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_no_jobs_no_problem |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_basic |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_muted |
|
100% |
40 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_request_notifications_host_request |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_request_notifications_host_request_with_followup |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_request_notifications_two_requests_one_with_followup |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_seen |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_seen.now_30_min_in_future |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_onboarding_emails |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_reference_reminders |
|
100% |
37 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_host_request_reminders |
|
100% |
47 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_add_users_to_email_list |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_recommendation_scores |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_badges |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_badges_awards_moderator_to_superuser |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_badges_skips_moderator_when_flag_off |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_request_notifications_blocked_users_no_notification |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_host_request_reminders_blocked_users_no_notification |
|
96% |
23 |
1 |
0 |
|
75% |
4 |
1 |
|
93% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_blocked_users_no_notification |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_badges_volunteers |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_update_badges_volunteer_status_change |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.FirstResult.scalars |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.FirstResult.unique |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.SecondResult.all |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.DummySession.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.DummySession.execute |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.DummySession.commit |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.DummySession.flush |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.fake_session_scope |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.fake_session_scope.Ctx.__enter__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
test_send_message_notifications_empty_unseen_simple.fake_session_scope.Ctx.__exit__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bg_jobs.py |
(no function) |
|
100% |
67 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_BlockUser |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_make_user_block |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_UnblockUser |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_GetBlockedUsers |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_relationships_userblock_dot_user |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
test_is_not_visible |
|
100% |
99 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_blocking.py |
(no function) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs_disabled |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs |
|
100% |
9 |
0 |
0 |
|
0% |
2 |
2 |
|
82% |
| app/backend/src/tests/test_bugs.py |
test_bugs.dud_post |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs.dud_post._PostReturn.json |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs_with_user |
|
100% |
10 |
0 |
0 |
|
0% |
2 |
2 |
|
83% |
| app/backend/src/tests/test_bugs.py |
test_bugs_with_user.dud_post |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs_with_user.dud_post._PostReturn.json |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_bugs_fails_on_network_error |
|
100% |
9 |
0 |
0 |
|
0% |
2 |
2 |
|
82% |
| app/backend/src/tests/test_bugs.py |
test_bugs_fails_on_network_error.dud_post |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_version |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_status |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_GetDescriptors |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_get_events |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_anonymous |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_authenticated |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_with_value |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_with_occurred |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_invalid_json |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_empty_batch |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_too_many |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_report_diagnostics_frontend_version |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_anonymous |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_authenticated |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_authenticated_records_mapping |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_anonymous_does_not_record_mapping |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_append_only_log_of_sightings |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_blocks_expired_binary |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_multipart_part_json |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_FakeCDNResponse.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_FakeCDNResponse.raise_for_status |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_patch_cdn |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_add_ota_package |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_serves_matching_package |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_resolves_per_platform |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_serves_newest_by_created_at |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_banned_package_excluded |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_runtime_mismatch_returns_directive |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_only_banned_package_returns_directive |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_without_runtime_version_returns_directive |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_native_update_manifest_no_package_returns_directive |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
_ota_check_req |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_ota_block_with_newer_bundle |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_ota_block_without_target_raises |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_ota_block_only_older_target_raises |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_banned_ota_block_with_successor |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_check_native_status_banned_ota_block_no_successor_raises |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_log_experiment_exposure |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_log_experiment_exposure_deduped |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
test_log_experiment_exposure_anonymous_ignored |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_bugs.py |
(no function) |
|
100% |
68 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
test_initial_ics_content |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
test_cancellation_ics_content |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
_normalize_ics |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
test_host_request_attachments |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
test_host_request_attachments_disabled |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
_get_email_ics_attachment_calendar_event |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_calendar_events.py |
_get_ics_event_sequence |
|
75% |
4 |
1 |
0 |
|
50% |
4 |
2 |
|
62% |
| app/backend/src/tests/test_calendar_events.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_1d_polygon |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_1d_point |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_community |
|
100% |
21 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_group |
|
100% |
18 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_place |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_discussion |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
create_event |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
get_community_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
get_group_id |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
testing_communities |
|
100% |
71 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_GetCommunity |
|
100% |
104 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListCommunities |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListCommunities_all |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListUserCommunities |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListOtherUserCommunities |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListGroups |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListAdmins |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_AddAdmin |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_RemoveAdmin |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListMembers |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListNearbyUsers |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListDiscussions |
|
100% |
25 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_is_user_in_node_geography |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListEvents |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_empty_query_aborts |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_min_length_lt_3_aborts |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_typo_matches_existing_name |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_word_similarity_matches_partial_word |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_results_sorted_by_similarity |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_no_results_returns_empty |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListAllCommunities |
|
100% |
54 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
TestCommunities.test_ListRecentCommunities |
|
100% |
26 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
test_JoinCommunity_and_LeaveCommunity |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
test_LeaveCommunity_regression |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
test_enforce_community_memberships_for_user |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_communities.py |
(no function) |
|
100% |
79 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
_complete_config |
|
100% |
18 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_load_from_env |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_load_from_env_types |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_getitem |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_setitem |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_instances_state_are_independent |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_copy |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
test_check_config_only_references_known_keys |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_config.py |
(no function) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_list_group_chats |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_list_empty_group_chats |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_list_group_chats_ordering |
|
100% |
49 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_list_group_chats_ordering_after_left |
|
100% |
54 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_messages |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_messages_pagination |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_messages_joined_left |
|
100% |
37 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_info |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_info_denied |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_get_group_chat_info_left |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_remove_group_chat_user |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_edit_group_chat |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_make_remove_group_chat_admin |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_send_message |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_send_direct_message |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_excessive_chat_initiations_are_reported |
|
100% |
23 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_send_direct_message_rate_limit |
|
100% |
26 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_leave_invite_to_group_chat |
|
100% |
66 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_group_chats_with_messages_before_join |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_invite_to_dm |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_sole_admin_leaves |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_search_messages |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_search_messages_left_joined |
|
100% |
34 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_admin_behaviour |
|
100% |
71 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_add_remove_admin_failures |
|
100% |
51 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_last_seen |
|
100% |
36 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_mark_last_seen_clears_notifications |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_mark_last_seen_clears_notifications.unseen_notification_count |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_one_dm_per_pair |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_GetDirectMessage |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_total_unseen |
|
100% |
39 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_regression_ListGroupChats_pagination |
|
100% |
22 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_muting |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_per_user |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_with_list_group_chats |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_chat_not_found |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_after_leaving_chat |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_dm |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_archiving_idempotent |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_chat_notifications |
|
100% |
48 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_chat_notifications.send_msg |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_chat_notifications.parse_message_payload |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
test_incomplete_profile |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_conversations.py |
(no function) |
|
100% |
57 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_b64 |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_simple_crypto |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_hash_sigs |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_asym_crypto |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_stable_secure_uniform |
|
100% |
24 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_encrypt_decrypt_proto_roundtrip |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_encrypt_decrypt_proto_with_different_fields |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_decrypt_proto_wrong_key |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_decrypt_proto_invalid_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_decrypt_proto_invalid_encrypted_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_encrypt_proto_different_keys_different_output |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_create_sofa_id |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_roundtrip |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_invalid_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_too_short |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_tampered_sofa_id |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_tampered_proto |
|
100% |
11 |
0 |
0 |
|
50% |
2 |
1 |
|
92% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_same_id_same_output |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
test_sofa_payload_different_ids_different_output |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_crypto.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_is_valid_user_id |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_is_valid_email |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_is_valid_username |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_is_valid_name |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_parse_date |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_get_parent_node_at_location |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
pg_dump |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
sort_pg_dump_output |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_sort_pg_dump_output |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
strip_leading_whitespace |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
restore_db_after_migration_test |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_migrations |
|
100% |
17 |
0 |
0 |
|
50% |
2 |
1 |
|
95% |
| app/backend/src/tests/test_db.py |
test_migrations.message |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_slugify |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_database_consistency_check |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_db.py |
test_migration_ordinals |
|
76% |
33 |
8 |
0 |
|
62% |
16 |
6 |
|
71% |
| app/backend/src/tests/test_db.py |
(no function) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_create_discussion_errors |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_create_and_get_discussion |
|
100% |
57 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_update_discussion |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_update_discussion_permission_denied |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_update_deleted_discussion |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_delete_discussion_by_creator |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_delete_discussion_permission_denied_for_non_creator |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_deleted_discussion_not_in_list |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_deleted_discussion_thread_still_accessible |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_delete_comment_shows_placeholder_with_replies |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_admin_delete_discussion |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_discussion_notifications_regression |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_create_discussion_creates_moderation_state |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_shadowed_discussion_visible_to_author_only |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_shadowed_discussion_excluded_from_listings |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_approved_discussion_visible_to_others |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_hidden_discussion_filtered_for_author_too |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_list_my_communities_discussions_respects_moderation |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_update_discussion_creates_version_record |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_update_discussion_multiple_edits_creates_multiple_version_records |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_delete_discussion_creates_version_record |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
test_admin_delete_discussion_creates_version_record |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_discussions.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_donations_disabled |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_one_time_donation_flow |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_recurring_donation_flow |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_customer_portal_url |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_merch_invoice_flow |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_merch_invoice_flow_nonexistent_user |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_slack_notification_on_merch_purchase |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_slack_notification_on_merch_purchase_unknown_user |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_slack_notification_on_one_time_donation |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_slack_notification_on_recurring_donation |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_revenue_metric_on_donation |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
test_revenue_metric_on_merch |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
fire_stripe_event |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_donations.py |
(no function) |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_dummy_data.py |
test_add_dummy_data |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_dummy_data.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_dump_emails.py |
test_dump_email_samples |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_dump_emails.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_access_by_normal_user |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_access_by_editor_user |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_access_by_superuser |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_CreateCommunity_invalid_geojson |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateCommunity_invalid_geojson |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateCommunity_invalid_id |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateCommunity |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_CreateCommunity |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateCommunity2 |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer_default_values |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer_hide_on_team_page |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer_user_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer_already_volunteer |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_MakeUserVolunteer_invalid_date |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_partial_update |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_not_found |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_invalid_started_date |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_invalid_stopped_date |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_reinstate |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_reinstate_already_current |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_UpdateVolunteer_reinstate_conflict_with_stopped |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_ListVolunteers |
|
100% |
21 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_ListVolunteers_with_past |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_ListVolunteers_ordering |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
test_ListVolunteers_empty |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_editor.py |
(no function) |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_signup_verification_email |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_report_email |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_reference_report_email_not_sent |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_reference_report_email |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_email_patching_fails |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_email_patching_fails.mock_queue_email |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_email_changed_confirmation_sent_to_new_email |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_do_not_email_security |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_do_not_email_non_security |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_do_not_email_non_security_unsublink |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_email_prefix_config |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_send_donation_email |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_chat_missed_messages_list_unsubscribe_header |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
test_email_deleted_users_regression |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email.py |
(no function) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email_localization.py |
_all_email_variants |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_email_localization.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email_localization.py |
test_email_renders_in_english |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_email_localization.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
_get_events |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_authenticated_context |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_with_override_user_id |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_anonymous |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_complex_properties |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_empty_properties |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_log_event_multiple_events |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_signup_flow_creates_events |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_login_creates_event |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_logout_creates_event |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_host_request_created_event |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_host_request_status_change_events |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_host_request_rejected_event |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_host_request_cancelled_event |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_host_request_message_event |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_send_message_creates_event |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_create_group_chat_event |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_friendship_request_events |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_friendship_cancel_event |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_report_creates_event |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_search_creates_event |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_friend_reference_event |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_event_created_event |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_password_change_event |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
test_no_stale_events |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_event_log.py |
(no function) |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_CreateEvent |
|
100% |
219 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_CreateEvent_incomplete_profile |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ScheduleEvent |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_cannot_overlap_occurrences_schedule |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_cannot_overlap_occurrences_update |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_UpdateEvent_single |
|
100% |
195 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_UpdateEvent_all |
|
100% |
43 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_GetEvent |
|
100% |
105 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_CancelEvent |
|
100% |
57 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventAttendees |
|
100% |
23 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventSubscribers |
|
100% |
23 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventOrganizers |
|
100% |
23 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_TransferEvent |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_SetEventSubscription |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_SetEventAttendance |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_InviteEventOrganizer |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventOccurrences |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListMyEvents |
|
100% |
98 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListMyEvents.new_event |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_list_my_events_exclude_attending |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_list_my_events_exclude_attending.make_event |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_RemoveEventOrganizer |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventAttendees_regression |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_threads |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_can_overlap_other_events_schedule_regression |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_can_overlap_other_events_update_regression |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_list_past_events_regression |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_community_invite_requests |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_update_event_should_notify_queues_job |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_photo_key |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_created_with_shadowed_visibility |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_shadowed_event_visible_to_creator_only |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_visible_after_approval |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_shadowed_event_hidden_from_list_for_non_creator |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_create_notification_deferred_until_approval |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_update_notification_has_moderation_state |
|
96% |
24 |
1 |
0 |
|
50% |
2 |
1 |
|
92% |
| app/backend/src/tests/test_events.py |
test_event_cancel_notification_has_moderation_state |
|
96% |
24 |
1 |
0 |
|
50% |
2 |
1 |
|
92% |
| app/backend/src/tests/test_events.py |
test_event_reminder_notification_has_moderation_state |
|
96% |
23 |
1 |
0 |
|
50% |
2 |
1 |
|
92% |
| app/backend/src/tests/test_events.py |
test_event_reminder_not_sent_for_cancelled_event |
|
100% |
24 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_reminder_not_sent_for_invisible_attendee |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_ListEventOccurrences_does_not_leak_other_events |
|
100% |
28 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_events.py |
test_event_comment_notification_has_moderation_state |
|
96% |
26 |
1 |
0 |
|
50% |
2 |
1 |
|
93% |
| app/backend/src/tests/test_events.py |
test_event_thread_reply_notification_has_moderation_state |
|
93% |
30 |
2 |
0 |
|
50% |
4 |
2 |
|
88% |
| app/backend/src/tests/test_events.py |
(no function) |
|
100% |
61 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
_flag_eval_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_logged_in_user_is_bucketed_into_rollout |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_anonymous_user_excluded_from_rollout_gets_feature_default |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_anonymous_user_still_gets_global_force_on_flag |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_unknown_feature_returns_in_code_default |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_evaluating_an_experiment_flag_records_exactly_one_exposure |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_evaluate_feature_flag_servicer_returns_value |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_evaluate_feature_flag_servicer_unknown_leaves_value_unset |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
_get_usage |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_record_feature_usage_appends_a_row |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_record_feature_usage_appends_a_row_per_check |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_record_feature_usage_records_each_user_and_feature |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_record_feature_usage_none_value |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_global_evaluation_excluded_from_rollout_gets_feature_default |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_global_evaluation_gets_global_force_on_flag |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_global_evaluation_unknown_feature_returns_in_code_default |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_evaluation_increments_metric_with_source_and_value |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_unknown_feature_increments_metric_with_unknown_source |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
setup_isolation |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_setup_writes_cache_and_records_fetch_time |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_setup_falls_back_to_disk_cache_when_fetch_fails |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_setup_raises_when_fetch_fails_and_no_cache |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_setup_raises_on_corrupt_cache |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_seconds_since_last_fetch_none_when_never_fetched |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_flags_value_returned |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_flags_missing_key_returns_in_code_default |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_flags_boolean_value |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_load_local_flags_from_file |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_load_local_flags_rejects_non_object |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
test_setup_in_local_file_mode_loads_file_and_skips_growthbook |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_experimentation.py |
(no function) |
|
100% |
48 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
create_upload |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_user_has_profile_gallery |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGalleryEditInfo |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGalleryEditInfo_verified_user |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGalleryEditInfo_not_owner |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGalleryEditInfo_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGalleryEditInfo_with_photos |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGallery_as_owner |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGallery_as_non_owner |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_GetGallery_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_success |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_with_caption |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_multiple_photos |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_not_owner |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_upload_not_owned |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_max_capacity |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_duplicate_photo |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_AddPhotoToGallery_gallery_not_found |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_RemovePhotoFromGallery_success |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_RemovePhotoFromGallery_not_owner |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_RemovePhotoFromGallery_item_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_to_first |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_to_middle |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_to_end |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_noop |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_not_owner |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_item_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_MovePhoto_after_item_not_found |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_UpdatePhotoCaption_success |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_UpdatePhotoCaption_clear_caption |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_UpdatePhotoCaption_not_owner |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_UpdatePhotoCaption_item_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_remove_and_readd_photo |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_gallery_photo_ordering_preserved |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_database_constraints_upload_uniqueness |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_get_avatar_upload_returns_first_by_position |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_get_avatar_upload_no_photos |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_has_avatar_photo_expression_with_photos |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_has_avatar_photo_expression_no_photos |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_avatar_url_via_api_reflects_first_photo |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_avatar_changes_after_reordering |
|
100% |
17 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_avatar_with_negative_positions |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
test_avatar_with_fractional_positions |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_galleries.py |
(no function) |
|
100% |
55 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_gis.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_gis.py |
TestGIS.test_GetUsers |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_gis.py |
TestGIS.test_GetClusteredUsers |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_gis.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_GetGroup |
|
100% |
121 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListAdmins |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListMembers |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListDiscussions |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListUserGroups |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListOtherUserGroups |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
TestGroups.test_ListEvents |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
test_JoinGroup_and_LeaveGroup |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
test_LeaveGroup_regression |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_groups.py |
(no function) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
test_translations_loaded |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
test_to_supported_locale |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
test_all_supported_locales_have_babel_locales |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
test_fallback_chain |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18n_locales.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_lookup |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_substitution |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_placeholder_with_spacing |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_localized |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_fallback |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_mutual_fallback |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_plural_suffixes |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_plural_suffix_fallback |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_plural_no_count |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_babel_locale |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_load_simple_json |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_load_nested_json |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_fallback_locale |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_fallback_on_empty_string |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_locale |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_string |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_plural_form |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_extra_substitution |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_substitution |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_missing_substitution_fallback |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_escaping |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
test_full_string_key |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_i18next.py |
(no function) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
interceptor_dummy_api |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_get_histogram_labels_value |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_get_setup_errors_value |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_ok |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_ok.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_all_ignored |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_all_ignored.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_assertion |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_assertion.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_div0 |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_div0.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_raise |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_raise.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_raise_custom |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_logging_interceptor_raise_custom.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_ok_open |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_ok_open.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_get_db_query_count_histogram |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_get_api_call_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_perf_accounting |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_perf_accounting.TestRpc |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
_get_histogram_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_phase_histograms |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_phase_histograms.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_perf_accounting_orm_write |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_perf_accounting_orm_write.TestRpc |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_sensitive |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_sensitive.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_sensitive_ping |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_exception |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_exception.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_setup_phase_exception_observed |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_setup_phase_exception_observed.TestRpc |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_abort |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_abort.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
cookie_auth |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
api_auth |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_auth_interceptor |
|
100% |
105 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_auth_cookies |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_tracing_interceptor_auth_api_key |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_auth_levels |
|
100% |
35 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_auth_levels.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_auth_levels.gen_args |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_session_cookie |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_authorization_header |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_both_cookie_and_authorization |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_neither_cookie_nor_authorization |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_all_optional_headers |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_bytes_ip_address |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_bytes_user_agent |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_malformed_authorization |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_find_auth_level_with_valid_service |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_find_auth_level_with_nonexistent_service |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_find_auth_level_with_unknown_auth_level |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_unknown |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_open |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_jailed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_secure |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_editor |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_validate_auth_level_with_admin |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_open_service_without_auth |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_open_service_with_auth |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_secure_service_without_auth |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_secure_service_with_normal_auth |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_secure_service_with_jailed_user |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_jailed_service_with_jailed_user |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_jailed_service_without_auth |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_editor_service_without_editor |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_editor_service_with_editor |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_admin_service_without_superuser |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_admin_service_with_superuser |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_check_auth_admin_service_without_auth |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_valid |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_missing |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_no_cookies |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_invalid_base64 |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_invalid_encryption |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_sofa_cookie_invalid_proto |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_generate_sofa_cookie |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_with_sofa_cookie |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_parse_headers_without_sofa_cookie |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_new |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_new.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_existing |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_existing.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_invalid_generates_new |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_logged_invalid_generates_new.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_with_authenticated_user |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_persists_on_exception |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
test_sofa_cookie_persists_on_exception.TestRpc |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_interceptors.py |
(no function) |
|
100% |
98 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_jail_basic |
|
100% |
19 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_JailInfo |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_AcceptTOS |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_TOS_increase |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_SetLocation |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_MarkUserNeedsLocationUpdate |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_AcceptCommunityGuidelines |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_modnotes |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
test_modnotes_no_notify |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_jail.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_language_name |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_region_name |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_date |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_time |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_datetime |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_timezone |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
test_localize_list |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_localize.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_markup.py |
test_markdown_to_html |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_markup.py |
test_markdown_to_html.to_para |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_markup.py |
test_markdown_to_plaintext |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_markup.py |
test_html_to_plaintext |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_markup.py |
(no function) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_media.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_media.py |
test_media_upload |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_media.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
_populate |
|
80% |
5 |
1 |
0 |
|
75% |
4 |
1 |
|
78% |
| app/backend/src/tests/test_metrics.py |
_sample_values |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_users_per_community_gauge |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_by_recency_gauge |
|
100% |
12 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
_add_activity |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
_platform_metrics |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
_gauge_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_by_platform |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_by_platform_excludes_invisible_users |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_by_platform_counts_user_once_per_platform |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_by_platform_excludes_old_activity |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
test_active_users_mobile_fraction_gauge |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_metrics.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
test_node_constraints |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
test_page_constraints |
|
94% |
63 |
4 |
0 |
|
100% |
0 |
0 |
|
94% |
| app/backend/src/tests/test_model_constraints.py |
test_activeness_probes_cant_have_multiple |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
_add_friend_relationship |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
test_friend_relationship_unique_active_pair |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_model_constraints.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_models.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_models.py |
test_user_age |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_models.py |
test_user_display_joined |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_models.py |
test_user_display_last_active |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_models.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
create_test_host_request_with_moderation |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_create_moderation |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_add_to_moderation_queue |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_moderate_content |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_resolve_queue_item |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_approve_content_via_api |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_create_host_request_creates_moderation_state |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_host_request_no_notification_before_approval |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_shadowed_notification_not_in_list_notifications |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_notification_visible_after_approval |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_shadowed_host_request_visible_to_author_only |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_unlisted_host_request_not_in_lists |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_approved_host_request_in_lists_and_notifications |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_hidden_host_request_invisible_to_all |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_multiple_host_requests_listing_visibility |
|
100% |
28 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_moderation_log_tracking |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_moderation_queue_workflow |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_empty |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_with_items |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_by_trigger |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_created_before |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_created_after |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_created_before_and_after |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_unresolved |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_by_author |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_ordering |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_pagination_newest_first |
|
100% |
32 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationLog |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationLog_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationState |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationState_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationState_unspecified_type |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_approve |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_hide |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_shadow |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_flag |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_flag_requires_trigger |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
_open_queue_item_id |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_set_priority |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_unflag |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_unflag_requires_queue_item |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_approve_without_clear_flags_leaves_flag_open |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ModerateContent_flag_supersede |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_GetModerationQueue_filter_by_priority |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_group_chat_created_with_moderation_state |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_group_chat_GetModerationState |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_group_chat_moderation_hide |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_group_chat_moderation_shadow |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_moderation_queue_disabled_when_zero |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_moderation_queue_approves_old_items |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_does_not_approve_recent_items |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_does_not_approve_already_approved |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_does_not_approve_moderator_shadowed_items |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_skips_shadowed_user_authored_items |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_auto_approve_preserves_other_open_flags |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_host_request_message_notifications_suppressed_before_approval |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_host_request_status_notifications_suppressed_before_approval |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_host_request_notifications_sent_after_approval |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_group_chat_message_notifications_suppressed_before_approval |
|
100% |
28 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_event_moderation_state_content |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
_get_moderation_state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_host_request |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_group_chat |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_event_occurrence |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_friend_request |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_round_trip |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_resolves_queue_items |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_noop_when_matches |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_unspecified_rejected |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_non_admin_rejected |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_writes_admin_action |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_only_touches_target |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_user_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_from_visibility_filter |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_from_visibility_multi |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_from_visibility_empty_is_any |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_SetUserContentVisibility_from_visibility_unspecified_rejected |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ListModerationStates_empty |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ListModerationStates_returns_states_chronologically |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ListModerationStates_filter_by_author |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
test_ListModerationStates_pagination |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_moderation.py |
(no function) |
|
100% |
103 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.get_boolean_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.get_string_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.get_integer_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.get_float_value |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
_FakeContext.get_object_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| app/backend/src/tests/test_native_updates.py |
_days_ago |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
_decide |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
_ts |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_client_info_from_full_proto |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_client_info_embedded_launch_source |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_client_info_defaults_when_request_empty |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_no_timestamps_means_no_update |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_fresh_binary_no_update |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_binary_between_warn_and_block_is_store_warn |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_binary_past_block_is_store_block |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_ota_between_warn_and_block_is_ota_warn |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_ota_past_block_is_ota_block |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_ota_clock_ignored_when_not_running_ota |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_binary_warn_but_ota_block_resolves_to_ota_block |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_store_precedence_when_severities_tie |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_binary_block_beats_ota_warn |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_warn_days_drive_warn_threshold |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_block_days_drive_block_threshold |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_zero_block_disables_clock |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_banned_bundle_on_ota_launch_forces_block |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
test_banned_ignored_when_not_an_ota_launch |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_native_updates.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notification_settings.py |
test_all_notifications_appear_in_settings |
|
100% |
13 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| app/backend/src/tests/test_notification_settings.py |
test_all_notifications_have_descriptions |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_notification_settings.py |
test_topic_action_unsubscribe_text_iff_unsubscribable |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_notification_settings.py |
test_topic_key_unsubscribe_text_iff_unsubscribable |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_notification_settings.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SetNotificationSettings_preferences_respected_editable |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SetNotificationSettings_preferences_not_editable |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_unsubscribe |
|
93% |
30 |
2 |
0 |
|
79% |
14 |
3 |
|
89% |
| app/backend/src/tests/test_notifications.py |
test_unsubscribe_do_not_email |
|
97% |
32 |
1 |
0 |
|
83% |
6 |
1 |
|
95% |
| app/backend/src/tests/test_notifications.py |
test_get_do_not_email |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_set_do_not_email |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_list_notifications |
|
100% |
37 |
0 |
0 |
|
83% |
6 |
1 |
|
98% |
| app/backend/src/tests/test_notifications.py |
test_notifications_seen |
|
100% |
41 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_unseen_notification_count_excludes_ums_hidden |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_GetVapidPublicKey |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterPushNotificationSubscription |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterPushNotificationSubscription_invalid_endpoint |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendTestPushNotification |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendBlogPostNotification |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_get_topic_actions_by_delivery_type |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_event_reminder_email_sent |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterMobilePushNotificationSubscription |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterMobilePushNotificationSubscription_android |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterMobilePushNotificationSubscription_no_device_type |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterMobilePushNotificationSubscription_re_enable |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_RegisterMobilePushNotificationSubscription_already_exists |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendTestMobilePushNotification |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_get_expo_push_receipts |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_get_expo_push_receipts_empty |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_success |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_device_not_registered |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_not_found |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_skips_already_checked |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendDevPushNotification_success |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendDevPushNotification_minimal |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendDevPushNotification_disabled |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_SendDevPushNotification_push_notifications_disabled |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_skips_too_recent |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_check_expo_push_receipts_batch |
|
100% |
22 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_DebugRedeliverPushNotification_success |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_DebugRedeliverPushNotification_not_found |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_DebugRedeliverPushNotification_wrong_user |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_DebugRedeliverPushNotification_disabled |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_DebugRedeliverPushNotification_push_notifications_disabled |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_email_delivery |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_push_delivery |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_digest_delivery |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_banned_user_no_email |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_deleted_user_no_regular_email |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_deleted_user_receives_account_deletion_email |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_do_not_email_respected |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_critical_bypasses_do_not_email |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_duplicate_delivery_skipped |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_deferred_when_content_not_visible |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_delivered_when_content_visible |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_notification_serializes_shadowed_actor |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_notifications.py |
test_handle_notification_multiple_delivery_types |
|
100% |
21 |
0 |
0 |
|
83% |
6 |
1 |
|
96% |
| app/backend/src/tests/test_notifications.py |
(no function) |
|
100% |
85 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_create_place_errors |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_create_guide_errors |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_create_page_place |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_create_page_guide |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_get_page |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_update_page |
|
100% |
96 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_owner_not_moderator |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_update_page_errors |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_page_transfer |
|
100% |
122 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_page_photo |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_list_user_places |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_list_other_user_places |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_list_user_guides |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
test_list_other_user_guides |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_pages.py |
(no function) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_generate_postal_verification_code |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_disabled |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_confirm_disabled |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_happy_path |
|
100% |
42 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_wrong_code |
|
100% |
21 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_code_expiry |
|
100% |
18 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_rate_limit |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_already_in_progress |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_cancel |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_can_cancel_after_postcard_sent |
|
100% |
19 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_list_attempts |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_address_validation |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_postcard_send_failure |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_code_case_insensitive |
|
100% |
17 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_attempt_not_found |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_postal_verification_other_user_attempt |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_has_postal_verification_helper |
|
100% |
21 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
test_generate_postcard_images |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postal_verification.py |
(no function) |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_get_postcard_front_image_returns_png |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_send_postcard_success |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_send_postcard_builds_recipient_correctly |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_send_postcard_excludes_none_optional_fields |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_send_postcard_auth_failure |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
test_send_postcard_order_failure |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_postcard_service.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
fake_agent |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
_enable |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_disabled_does_nothing |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_enables_with_flag_driven_params |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_idempotent_when_unchanged |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_rate_change_restarts_agent |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_mode_change_restarts_agent |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_disable_after_running_shuts_down |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
test_sample_rate_is_clamped |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_profiling.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicMapLayer |
|
100% |
23 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetDonationStats_empty |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetDonationStats_with_donations |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetDonationStats_excludes_merch |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetDonationStats_excludes_previous_years |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetDonationStats_uses_flags |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetVolunteers_mixed_current_and_past |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetVolunteers_custom_sort_key |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetVolunteers_excludes_hidden |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetVolunteers_link_types |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetVolunteers_board_member_flag |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetSignupPageInfo |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetSignupPageInfo_excludes_invisible_users |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicUser_not_found |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicUser_invisible_user |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicUser_limited_visibility |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicUser_most_visibility |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
test_GetPublicUser_full_visibility |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
_valid_request_text |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| app/backend/src/tests/test_public_trips.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
_make_node |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
_make_node_admin |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
_create_trip_directly |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_incomplete_profile |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_community_not_found |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_not_enabled |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_allows_region_and_narrower |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_in_past_uses_node_timezone |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_date_errors |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_overlap |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_closed_trip_allows_new_overlap |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_get_public_trip |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_get_public_trip_not_found |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_filters_closed_and_past |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_hides_invisible_user |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_pagination |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_self_sees_all |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_other_filters_inactive_and_past |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_invisible_user |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_close |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_reopen |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_cant_reopen_past_trip |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_close_past_trip_allowed |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_description_only |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_dates |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_not_owner |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_in_past |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_date_validation |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_create_public_trip_description_too_short |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_update_public_trip_description_too_short |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_same_gender_only_create_and_retrieve |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_same_gender_only_visibility_list_and_get |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_same_gender_only_moderator_bypass |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_same_gender_only_owner_always_sees_own_trips |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_same_gender_only_update |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_ascending_order |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_status_filter |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_status_filter_ignored_for_others |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_offers_count_owner |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
test_list_public_trips_by_user_offers_count_not_set_for_others |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_public_trips.py |
(no function) |
|
100% |
60 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
create_host_request |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
create_host_request_by_date |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
create_host_reference |
|
100% |
23 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
create_friend_reference |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_ListPagination |
|
100% |
66 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_ListReference_banned_deleted_users |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteFriendReference |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteFriendReference_with_empty_text |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteFriendReference_with_private_text |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteFriendReference_requires_friendship |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_host_request_states_references |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteHostRequestReference |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteHostRequestReference_private_text |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_GetHostRequestReferenceStatus |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_AvailableWriteReferences_and_ListPendingReferencesToWrite |
|
100% |
124 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_regression_disappearing_refs |
|
100% |
82 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_WriteFriendReference_creates_shadowed_moderation_state |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
test_reference_hidden_via_ums_disappears_from_listings |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_references.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_reporting.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_reporting.py |
test_reporting |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_reporting.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
valid_request_text |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| app/backend/src/tests/test_requests.py |
test_create_request |
|
100% |
63 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_host_request_rejects_date_past_in_host_timezone |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_host_request_date_valid_when_host_behind_requester |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_incomplete_profile |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_excessive_requests_are_reported |
|
100% |
25 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
add_message |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_GetHostRequest |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests |
|
100% |
41 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_pagination_regression |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_sort_by_from_date |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_sort_by_from_date_pagination |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_active_filter |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_active_filter_excludes_past |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_ListHostRequests_status_in_filter |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_RespondHostRequests |
|
100% |
55 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_get_host_request_messages |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_SendHostRequestMessage |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_get_updates |
|
100% |
46 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_archive_host_request |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_mark_last_seen |
|
100% |
42 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_mark_last_seen_clears_notifications |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_mark_last_seen_clears_notifications.unseen_notification_count |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_response_rate |
|
100% |
92 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_request_notifications |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_quick_decline |
|
98% |
43 |
1 |
0 |
|
67% |
6 |
2 |
|
94% |
| app/backend/src/tests/test_requests.py |
test_host_req_feedback |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
_make_trip_node_admin |
|
100% |
8 |
0 |
0 |
|
50% |
2 |
1 |
|
90% |
| app/backend/src/tests/test_requests.py |
_create_public_trip |
|
100% |
10 |
0 |
0 |
|
50% |
2 |
1 |
|
92% |
| app/backend/src/tests/test_requests.py |
test_create_request_with_public_trip |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_with_public_trip_dates_out_of_range |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_with_public_trip_user_mismatch |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_with_closed_public_trip |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_with_nonexistent_public_trip |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_without_public_trip_id_unchanged |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_same_gender_only_wrong_gender_rejected |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_same_gender_only_same_gender_allowed |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_same_gender_only_moderator_bypass |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
test_create_request_duplicate_offer_rejected |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_requests.py |
(no function) |
|
100% |
62 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
test_GetTermsOfService |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
test_GetCommunityGuidelines |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
test_GetRegions |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
test_GetLanguages |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
test_GetBadges |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_resources.py |
(no function) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_none_input |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_empty_message |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_no_sensitive_fields |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_sensitive_field |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_nested_message_non_repeated |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_empty_nested_message |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_empty_repeated_field |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_repeated_messages |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_deeply_nested_messages |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_multiple_nested_messages_with_sensitive_fields |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_preserves_original |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_message_with_non_message_type_fields |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
TestSanitizedBytes.test_complex_nested_structure |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_sanitized_bytes.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_Search |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_UserSearch |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_regression_search_in_area |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_search_in_rectangle |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_complete_profile |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_meetup_status |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_language |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_strong_verification |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_regression_search_only_with_references |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_search_exactly_user_ids |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
sample_event_data |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
create_event |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
create_event._create_event |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
sample_community |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_EventSearch_no_filters |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_by_query |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_by_time |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_by_circle |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_by_rectangle |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_pagination |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_pagination_with_page_number |
|
100% |
21 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_online_status |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_filter_subscription_attendance_organizing_my_communities |
|
100% |
32 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_event_search_exclude_attending |
|
100% |
27 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_regression_search_multiple_pages |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_regression_search_no_results |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_same_gender_only |
|
100% |
59 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
test_user_filter_same_gender_only_with_other_filters |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_search.py |
(no function) |
|
100% |
48 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_slack.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_slack.py |
test_send_slack_message_disabled |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_slack.py |
test_send_slack_message_enabled |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_slack.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_smtp.py |
test_verbatim_attachment_headers |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_smtp.py |
test_embed_html_relative_images |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_smtp.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
_emulate_iris_callback |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
do_and_check_sv |
|
98% |
53 |
1 |
0 |
|
88% |
8 |
1 |
|
97% |
| app/backend/src/tests/test_strong_verification.py |
monkeypatch_sv_config |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_happy_path |
|
100% |
107 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_delete_data |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_expiry |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_regression |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_regression2 |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_disabled |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_delete_data_cant_reverify |
|
100% |
39 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_duplicate_other_user |
|
100% |
37 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
test_strong_verification_non_passport |
|
100% |
17 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_strong_verification.py |
(no function) |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_templating.py |
test_html_escaping |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_templating.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_threads_basic |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_threads_errors |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
pagination_test |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_threads_pagination |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
_make_thread_and_comment |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_comment_creates_moderation_state |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_reply_creates_moderation_state |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_shadowed_comment_visible_to_author_only |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_shadowed_reply_visible_to_author_only |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
_approve |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_comment_by_invisible_user_hidden |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_reply_by_invisible_user_hidden |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_admin_can_approve_comment |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_admin_can_hide_comment |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_total_num_responses_excludes_shadowed |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_total_num_responses_includes_own_shadowed |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_edit_comment_creates_version_record |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_delete_comment_creates_version_record |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_edit_reply_creates_version_record |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_delete_reply_creates_version_record |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
test_edit_comment_multiple_edits_creates_multiple_version_records |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_threads.py |
(no function) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
_add_upload |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_unused |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_profile_gallery |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_event |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_page |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_community_page |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_multiple |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_for_keys_batch |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_get_upload_uses_for_keys_empty |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
test_upload_uses_covers_all_foreign_keys |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| app/backend/src/tests/test_upload_uses.py |
(no function) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_page_token_time_python |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_page_token_time_db |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_http_date_with_datetime |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_http_date_without_datetime |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_wrap_coordinate |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
test_to_timezone |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_utils.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
_ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone.deny_operator |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone.succeed |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone_ratelimit |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone_ratelimit.succeed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_VerifyPhone |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_VerifyPhone_antibrute |
|
100% |
8 |
0 |
0 |
|
75% |
4 |
1 |
|
92% |
| app/backend/src/tests/test_verification.py |
test_phone_uniqueness |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_phone_uniqueness.succeed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_send_sms |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_ChangePhone_sms_disabled |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
test_sms_verification_no_donation |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_verification.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
_FakeContext.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
_FakeContext.is_logged_in |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
test_is_visible_property |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
test_select_dot_where_users_visible |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
test_select_dot_where_users_column_visible |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
test_shadowed_user_hidden_from_others_visible_to_self |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
test_shadowed_user_column_visible_with_self_exception |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| app/backend/src/tests/test_visible_users.py |
(no function) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |