| app/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/api/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/api/deps.py |
get_db |
2 |
0 |
0 |
100% |
| app/api/deps.py |
get_current_user |
11 |
4 |
0 |
64% |
| app/api/deps.py |
get_current_active_superuser |
3 |
0 |
0 |
100% |
| app/api/deps.py |
(no function) |
19 |
0 |
0 |
100% |
| app/api/main.py |
(no function) |
8 |
0 |
0 |
100% |
| app/api/routes/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/api/routes/items.py |
read_items |
10 |
4 |
0 |
60% |
| app/api/routes/items.py |
read_item |
6 |
0 |
0 |
100% |
| app/api/routes/items.py |
create_item |
5 |
0 |
0 |
100% |
| app/api/routes/items.py |
update_item |
11 |
0 |
0 |
100% |
| app/api/routes/items.py |
delete_item |
8 |
0 |
0 |
100% |
| app/api/routes/items.py |
(no function) |
17 |
0 |
0 |
100% |
| app/api/routes/login.py |
login_access_token |
7 |
1 |
0 |
86% |
| app/api/routes/login.py |
test_token |
1 |
0 |
0 |
100% |
| app/api/routes/login.py |
recover_password |
7 |
0 |
0 |
100% |
| app/api/routes/login.py |
reset_password |
13 |
2 |
0 |
85% |
| app/api/routes/login.py |
recover_password_html_content |
6 |
6 |
0 |
0% |
| app/api/routes/login.py |
(no function) |
23 |
0 |
0 |
100% |
| app/api/routes/tasks.py |
read_tasks |
10 |
0 |
0 |
100% |
| app/api/routes/tasks.py |
read_task |
10 |
1 |
0 |
90% |
| app/api/routes/tasks.py |
create_task |
7 |
0 |
0 |
100% |
| app/api/routes/tasks.py |
update_task |
15 |
2 |
0 |
87% |
| app/api/routes/tasks.py |
delete_task |
12 |
1 |
0 |
92% |
| app/api/routes/tasks.py |
schedule_tasks |
62 |
15 |
0 |
76% |
| app/api/routes/tasks.py |
reorder_tasks |
14 |
4 |
0 |
71% |
| app/api/routes/tasks.py |
toggle_task_completed |
14 |
4 |
0 |
71% |
| app/api/routes/tasks.py |
(no function) |
24 |
0 |
0 |
100% |
| app/api/routes/users.py |
read_users |
5 |
0 |
0 |
100% |
| app/api/routes/users.py |
create_user |
8 |
0 |
0 |
100% |
| app/api/routes/users.py |
update_user_me |
10 |
0 |
0 |
100% |
| app/api/routes/users.py |
update_password_me |
9 |
0 |
0 |
100% |
| app/api/routes/users.py |
read_user_me |
1 |
0 |
0 |
100% |
| app/api/routes/users.py |
delete_user_me |
7 |
0 |
0 |
100% |
| app/api/routes/users.py |
register_user |
6 |
0 |
0 |
100% |
| app/api/routes/users.py |
read_user_by_id |
6 |
0 |
0 |
100% |
| app/api/routes/users.py |
update_user |
9 |
0 |
0 |
100% |
| app/api/routes/users.py |
delete_user |
10 |
0 |
0 |
100% |
| app/api/routes/users.py |
(no function) |
31 |
0 |
0 |
100% |
| app/api/routes/utils.py |
test_email |
3 |
3 |
0 |
0% |
| app/api/routes/utils.py |
health_check |
1 |
1 |
0 |
0% |
| app/api/routes/utils.py |
(no function) |
10 |
0 |
0 |
100% |
| app/backend_pre_start.py |
init |
6 |
3 |
0 |
50% |
| app/backend_pre_start.py |
main |
3 |
3 |
0 |
0% |
| app/backend_pre_start.py |
(no function) |
14 |
1 |
0 |
93% |
| app/core/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/core/config.py |
parse_cors |
5 |
3 |
0 |
40% |
| app/core/config.py |
Settings.all_cors_origins |
1 |
0 |
0 |
100% |
| app/core/config.py |
Settings.SQLALCHEMY_DATABASE_URI |
1 |
0 |
0 |
100% |
| app/core/config.py |
Settings._set_default_emails_from |
3 |
0 |
0 |
100% |
| app/core/config.py |
Settings.emails_enabled |
1 |
0 |
0 |
100% |
| app/core/config.py |
Settings._check_default_secret |
5 |
1 |
0 |
80% |
| app/core/config.py |
Settings._enforce_non_default_secrets |
4 |
0 |
0 |
100% |
| app/core/config.py |
(no function) |
50 |
0 |
0 |
100% |
| app/core/db.py |
init_db |
10 |
3 |
0 |
70% |
| app/core/db.py |
(no function) |
6 |
0 |
0 |
100% |
| app/core/security.py |
create_access_token |
4 |
0 |
0 |
100% |
| app/core/security.py |
verify_password |
1 |
0 |
0 |
100% |
| app/core/security.py |
get_password_hash |
1 |
0 |
0 |
100% |
| app/core/security.py |
(no function) |
10 |
0 |
0 |
100% |
| app/crud.py |
create_user |
5 |
0 |
0 |
100% |
| app/crud.py |
update_user |
11 |
0 |
0 |
100% |
| app/crud.py |
get_user_by_email |
3 |
0 |
0 |
100% |
| app/crud.py |
authenticate |
6 |
0 |
0 |
100% |
| app/crud.py |
create_item |
5 |
0 |
0 |
100% |
| app/crud.py |
(no function) |
10 |
0 |
0 |
100% |
| app/initial_data.py |
init |
2 |
2 |
0 |
0% |
| app/initial_data.py |
main |
3 |
3 |
0 |
0% |
| app/initial_data.py |
(no function) |
9 |
9 |
0 |
0% |
| app/main.py |
custom_generate_unique_id |
1 |
0 |
0 |
100% |
| app/main.py |
(no function) |
13 |
1 |
0 |
92% |
| app/models.py |
(no function) |
106 |
0 |
0 |
100% |
| app/tests/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/api/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/api/routes/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_create_item |
8 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_read_item |
8 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_read_item_not_found |
4 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_read_item_not_enough_permissions |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_read_items |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_update_item |
9 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_update_item_not_found |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_update_item_not_enough_permissions |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_delete_item |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_delete_item_not_found |
4 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
test_delete_item_not_enough_permissions |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_items.py |
(no function) |
16 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_get_access_token |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_get_access_token_incorrect_password |
3 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_use_access_token |
4 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_recovery_password |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_recovery_password_user_not_exits |
3 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_reset_password |
9 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
test_reset_password_invalid_token |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_login.py |
(no function) |
14 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_get_users_superuser_me |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_get_users_normal_user_me |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_create_user_new_email |
10 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_get_existing_user |
11 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_get_existing_user_current_user |
16 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_get_existing_user_permissions_error |
3 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_create_user_existing_username |
9 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_create_user_by_normal_user |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_retrieve_users |
14 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_user_me |
13 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_password_me |
16 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_password_me_incorrect_password |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_user_me_email_exists |
8 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_password_me_same_password_error |
5 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_register_user |
15 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_register_user_already_exists_error |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_user |
14 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_user_not_exists |
4 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_update_user_email_exists |
12 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_me |
19 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_me_as_superuser |
4 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_super_user |
11 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_not_found |
3 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_current_super_user_error |
6 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
test_delete_user_without_privileges |
7 |
0 |
0 |
100% |
| app/tests/api/routes/test_users.py |
(no function) |
34 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
_get_priority |
3 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
_fresh_user_headers |
4 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
_create_task |
5 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task |
10 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_with_owner |
12 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_read_task |
13 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_update_task |
16 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_delete_task |
11 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_with_tags |
7 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_with_priority |
8 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_with_due_date |
8 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_with_scheduled_start |
9 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_create_task_without_scheduled_start |
7 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_update_task_scheduled_start |
16 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_clear_task_scheduled_start |
16 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_toggle_task_completed |
16 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_read_tasks |
6 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_read_tasks_normal_user_sees_only_own |
9 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_reorder_tasks |
9 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_read_task_not_found |
4 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_update_task_not_found |
4 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_delete_task_not_found |
4 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_normal_user_cannot_read_other_users_task |
5 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_normal_user_cannot_delete_other_users_task |
5 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
_tomorrow_noon |
2 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_schedule_assigns_scheduled_start |
19 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_schedule_respects_priority_order |
22 |
3 |
0 |
86% |
| app/tests/api/test_tasks.py |
test_schedule_respects_working_hours |
10 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_schedule_skips_completed_tasks |
12 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_schedule_only_affects_own_tasks |
8 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
test_schedule_reschedules_all_incomplete_tasks |
12 |
0 |
0 |
100% |
| app/tests/api/test_tasks.py |
(no function) |
40 |
0 |
0 |
100% |
| app/tests/conftest.py |
db |
8 |
0 |
0 |
100% |
| app/tests/conftest.py |
client |
2 |
0 |
0 |
100% |
| app/tests/conftest.py |
superuser_token_headers |
1 |
0 |
0 |
100% |
| app/tests/conftest.py |
normal_user_token_headers |
1 |
0 |
0 |
100% |
| app/tests/conftest.py |
(no function) |
18 |
0 |
0 |
100% |
| app/tests/crud/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_create_user |
6 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_authenticate_user |
7 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_not_authenticate_user |
4 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_check_if_user_is_active |
5 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_check_if_user_is_active_inactive |
5 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_check_if_user_is_superuser |
5 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_check_if_user_is_superuser_normal_user |
5 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_get_user |
8 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
test_update_user |
12 |
0 |
0 |
100% |
| app/tests/crud/test_user.py |
(no function) |
15 |
0 |
0 |
100% |
| app/tests/scripts/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/scripts/test_backend_pre_start.py |
test_init_successful_connection |
12 |
2 |
0 |
83% |
| app/tests/scripts/test_backend_pre_start.py |
(no function) |
4 |
0 |
0 |
100% |
| app/tests/scripts/test_test_pre_start.py |
test_init_successful_connection |
12 |
2 |
0 |
83% |
| app/tests/scripts/test_test_pre_start.py |
(no function) |
4 |
0 |
0 |
100% |
| app/tests/utils/__init__.py |
(no function) |
0 |
0 |
0 |
100% |
| app/tests/utils/item.py |
create_random_item |
7 |
0 |
0 |
100% |
| app/tests/utils/item.py |
(no function) |
6 |
0 |
0 |
100% |
| app/tests/utils/user.py |
user_authentication_headers |
6 |
0 |
0 |
100% |
| app/tests/utils/user.py |
create_random_user |
5 |
0 |
0 |
100% |
| app/tests/utils/user.py |
authentication_token_from_email |
10 |
1 |
0 |
90% |
| app/tests/utils/user.py |
(no function) |
9 |
0 |
0 |
100% |
| app/tests/utils/utils.py |
random_lower_string |
1 |
0 |
0 |
100% |
| app/tests/utils/utils.py |
random_email |
1 |
0 |
0 |
100% |
| app/tests/utils/utils.py |
get_superuser_token_headers |
6 |
0 |
0 |
100% |
| app/tests/utils/utils.py |
(no function) |
7 |
0 |
0 |
100% |
| app/tests_pre_start.py |
init |
6 |
3 |
0 |
50% |
| app/tests_pre_start.py |
main |
3 |
3 |
0 |
0% |
| app/tests_pre_start.py |
(no function) |
14 |
1 |
0 |
93% |
| app/utils.py |
render_email_template |
3 |
0 |
0 |
100% |
| app/utils.py |
send_email |
13 |
3 |
0 |
77% |
| app/utils.py |
generate_test_email |
4 |
4 |
0 |
0% |
| app/utils.py |
generate_reset_password_email |
5 |
0 |
0 |
100% |
| app/utils.py |
generate_new_account_email |
4 |
0 |
0 |
100% |
| app/utils.py |
generate_password_reset_token |
6 |
0 |
0 |
100% |
| app/utils.py |
verify_password_reset_token |
5 |
0 |
0 |
100% |
| app/utils.py |
(no function) |
24 |
0 |
0 |
100% |