| app/celery_app.py |
(no function) |
|
4 |
0 |
2 |
|
100.00% |
| app/config.py |
(no function) |
|
26 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
submit_version |
|
13 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
get_pending_approvals |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
get_approvals_for_app |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
has_approved_version |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
has_any_approved_version |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
withdraw |
|
5 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
_get_approval_or_404 |
|
4 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
approve |
|
10 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
reject |
|
10 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
revoke |
|
10 |
0 |
0 |
|
100.00% |
| app/crud/app_version_approvals.py |
(no function) |
|
15 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
get_app |
|
4 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
get_apps |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
get_visible_apps |
|
2 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
create_app |
|
5 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
update_app |
|
9 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
set_app_image |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
soft_delete_app |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/apps.py |
(no function) |
|
12 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
get_course |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
get_courses |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
create_course |
|
5 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
update_course |
|
9 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
delete_course |
|
7 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
get_course_members |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
add_users_to_course |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
remove_user_from_course |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/courses.py |
(no function) |
|
13 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
_is_destroyed_subq |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
count_active_user_deployments |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
get_deployment |
|
4 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
get_deployment_with_details |
|
4 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
get_latest_task |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
get_first_task |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
derive_status |
|
22 |
2 |
0 |
|
90.91% |
| app/crud/deployments.py |
get_deployment_status |
|
4 |
1 |
0 |
|
75.00% |
| app/crud/deployments.py |
get_deployment_created_at |
|
2 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
bulk_get_task_summary |
|
10 |
1 |
0 |
|
90.00% |
| app/crud/deployments.py |
get_team_members |
|
5 |
1 |
0 |
|
80.00% |
| app/crud/deployments.py |
get_deployment_teams_with_members |
|
6 |
2 |
0 |
|
66.67% |
| app/crud/deployments.py |
get_deployment_outputs |
|
7 |
4 |
0 |
|
42.86% |
| app/crud/deployments.py |
get_latest_successful_deploy_outputs |
|
7 |
2 |
0 |
|
71.43% |
| app/crud/deployments.py |
get_deployments |
|
29 |
4 |
0 |
|
86.21% |
| app/crud/deployments.py |
create_deployment |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/deployments.py |
soft_delete_deployment |
|
6 |
6 |
0 |
|
0.00% |
| app/crud/deployments.py |
create_user_to_deployments |
|
6 |
6 |
0 |
|
0.00% |
| app/crud/deployments.py |
(no function) |
|
27 |
0 |
0 |
|
100.00% |
| app/crud/locks.py |
acquire_user_xact_lock |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/locks.py |
acquire_deployment_xact_lock |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/locks.py |
(no function) |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
get_for_user |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
upsert |
|
24 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
stamp_validation |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
delete |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
_common_metadata |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
get_dispatch_envelope |
|
7 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
get_decrypted_for_backend |
|
7 |
0 |
0 |
|
100.00% |
| app/crud/openstack_credentials.py |
(no function) |
|
16 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
get_task |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
get_tasks |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
create_task |
|
5 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
update_task |
|
11 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
delete_task |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/tasks.py |
(no function) |
|
9 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
get_team |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
get_teams |
|
4 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
_add_team_members |
|
3 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
create_team |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
update_team |
|
9 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
delete_team |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
add_user_to_team |
|
7 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
remove_user_from_team |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
create_teams_for_deployment |
|
8 |
0 |
0 |
|
100.00% |
| app/crud/teams.py |
(no function) |
|
13 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
get_user |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
get_user_by_username |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
get_user_by_email |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
get_users |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
create_user |
|
5 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
update_user |
|
9 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
delete_user |
|
6 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
search_users |
|
1 |
0 |
0 |
|
100.00% |
| app/crud/users.py |
(no function) |
|
13 |
0 |
0 |
|
100.00% |
| app/database.py |
get_db |
|
4 |
4 |
0 |
|
0.00% |
| app/database.py |
(no function) |
|
8 |
0 |
0 |
|
100.00% |
| app/main.py |
_background_tasks_disabled |
|
1 |
0 |
0 |
|
100.00% |
| app/main.py |
lifespan |
|
27 |
19 |
0 |
|
29.63% |
| app/main.py |
health_check |
|
1 |
0 |
0 |
|
100.00% |
| app/main.py |
(no function) |
|
32 |
0 |
0 |
|
100.00% |
| app/models.py |
(no function) |
|
162 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
list_pending_versions |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
approve_version |
|
10 |
4 |
0 |
|
60.00% |
| app/routers/admin_apps.py |
reject_version |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
revoke_version |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
deactivate_app |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
_require_app |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/admin_apps.py |
(no function) |
|
22 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_serialize_app |
|
6 |
2 |
0 |
|
66.67% |
| app/routers/apps.py |
_version_tag |
|
3 |
3 |
0 |
|
0.00% |
| app/routers/apps.py |
MarkerError.__init__ |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_parse_var_scope |
|
8 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_forbid_packer_team_user_scope |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_reject_malformed_markers |
|
15 |
4 |
0 |
|
73.33% |
| app/routers/apps.py |
_select_marker |
|
14 |
6 |
0 |
|
57.14% |
| app/routers/apps.py |
_parse_scope_only_marker |
|
8 |
1 |
0 |
|
87.50% |
| app/routers/apps.py |
_parse_file_marker |
|
24 |
2 |
0 |
|
91.67% |
| app/routers/apps.py |
_parse_marker_mode |
|
14 |
8 |
0 |
|
42.86% |
| app/routers/apps.py |
_parse_marker_multi |
|
12 |
4 |
0 |
|
66.67% |
| app/routers/apps.py |
_collection_check_type |
|
17 |
1 |
0 |
|
94.12% |
| app/routers/apps.py |
_check_multi_type_conflict |
|
5 |
2 |
0 |
|
60.00% |
| app/routers/apps.py |
_parse_resource_marker |
|
8 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_parse_marker |
|
13 |
1 |
0 |
|
92.31% |
| app/routers/apps.py |
_apply_defaults |
|
6 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_closest_match |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/apps.py |
_line_number_at |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_validate_file_var_shape |
|
5 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_validate_scoped_var_shape |
|
5 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_coerce_hcl_default |
|
34 |
19 |
0 |
|
44.12% |
| app/routers/apps.py |
_parse_one_variable |
|
37 |
4 |
0 |
|
89.19% |
| app/routers/apps.py |
_iter_variable_blocks |
|
20 |
1 |
0 |
|
95.00% |
| app/routers/apps.py |
_parse_terraform_variables |
|
12 |
0 |
0 |
|
100.00% |
| app/routers/apps.py |
_parse_packer_variables |
|
10 |
1 |
0 |
|
90.00% |
| app/routers/apps.py |
_discover_packer_templates |
|
25 |
2 |
0 |
|
92.00% |
| app/routers/apps.py |
list_apps |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/apps.py |
get_app |
|
18 |
18 |
0 |
|
0.00% |
| app/routers/apps.py |
load_variable_definitions |
|
28 |
3 |
0 |
|
89.29% |
| app/routers/apps.py |
get_app_variables |
|
11 |
3 |
0 |
|
72.73% |
| app/routers/apps.py |
create_app |
|
20 |
14 |
0 |
|
30.00% |
| app/routers/apps.py |
update_app |
|
12 |
2 |
0 |
|
83.33% |
| app/routers/apps.py |
submit_version |
|
15 |
2 |
0 |
|
86.67% |
| app/routers/apps.py |
withdraw_version |
|
6 |
1 |
0 |
|
83.33% |
| app/routers/apps.py |
list_version_approvals |
|
5 |
1 |
0 |
|
80.00% |
| app/routers/apps.py |
delete_app |
|
8 |
2 |
0 |
|
75.00% |
| app/routers/apps.py |
(no function) |
|
107 |
0 |
0 |
|
100.00% |
| app/routers/auth_keycloak.py |
auth_health |
|
1 |
1 |
0 |
|
0.00% |
| app/routers/auth_keycloak.py |
(no function) |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/courses.py |
_find_course_teacher |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/courses.py |
list_courses |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/courses.py |
get_course |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/courses.py |
create_course |
|
6 |
0 |
0 |
|
100.00% |
| app/routers/courses.py |
update_course |
|
8 |
2 |
0 |
|
75.00% |
| app/routers/courses.py |
delete_course |
|
8 |
2 |
0 |
|
75.00% |
| app/routers/courses.py |
list_course_members |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/courses.py |
add_course_members |
|
5 |
1 |
0 |
|
80.00% |
| app/routers/courses.py |
remove_course_member |
|
7 |
2 |
0 |
|
71.43% |
| app/routers/courses.py |
add_course_teacher |
|
13 |
3 |
0 |
|
76.92% |
| app/routers/courses.py |
remove_course_teacher |
|
9 |
1 |
0 |
|
88.89% |
| app/routers/courses.py |
(no function) |
|
33 |
0 |
0 |
|
100.00% |
| app/routers/dashboard.py |
get_dashboard_stats |
|
18 |
1 |
0 |
|
94.44% |
| app/routers/dashboard.py |
(no function) |
|
16 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
_list_course_scope_deployments |
|
21 |
21 |
0 |
|
0.00% |
| app/routers/deployments.py |
list_deployments |
|
15 |
1 |
0 |
|
93.33% |
| app/routers/deployments.py |
get_deployment |
|
27 |
5 |
0 |
|
81.48% |
| app/routers/deployments.py |
_attach_files_to_user_input |
|
48 |
7 |
0 |
|
85.42% |
| app/routers/deployments.py |
_validate_scoped_user_input |
|
51 |
16 |
0 |
|
68.63% |
| app/routers/deployments.py |
_validate_scoped_user_input._user_slot_team_prefix |
|
6 |
1 |
0 |
|
83.33% |
| app/routers/deployments.py |
_validate_scoped_user_input._is_empty_slot_value |
|
5 |
5 |
0 |
|
0.00% |
| app/routers/deployments.py |
_strip_file_vars_from_user_input |
|
15 |
4 |
0 |
|
73.33% |
| app/routers/deployments.py |
_parse_and_strip_user_input |
|
6 |
2 |
0 |
|
66.67% |
| app/routers/deployments.py |
_looks_like_file_var |
|
8 |
2 |
0 |
|
75.00% |
| app/routers/deployments.py |
_file_var_metadata_only |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
create_deployment |
|
46 |
17 |
0 |
|
63.04% |
| app/routers/deployments.py |
delete_deployment |
|
14 |
5 |
0 |
|
64.29% |
| app/routers/deployments.py |
_fetch_dispatch_envelope |
|
6 |
4 |
0 |
|
33.33% |
| app/routers/deployments.py |
_commit_and_dispatch |
|
13 |
6 |
0 |
|
53.85% |
| app/routers/deployments.py |
_dispatch_destroy |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
_dispatch_lifecycle_task |
|
16 |
5 |
0 |
|
68.75% |
| app/routers/deployments.py |
_latest_tf_state_for |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
list_deployment_resources |
|
8 |
1 |
0 |
|
87.50% |
| app/routers/deployments.py |
get_deployment_resource_detail |
|
11 |
1 |
0 |
|
90.91% |
| app/routers/deployments.py |
redeploy_deployment_resource |
|
15 |
2 |
0 |
|
86.67% |
| app/routers/deployments.py |
_view_asdict |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
pause_deployment |
|
7 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
resume_deployment |
|
7 |
1 |
0 |
|
85.71% |
| app/routers/deployments.py |
download_deployment_file |
|
24 |
6 |
0 |
|
75.00% |
| app/routers/deployments.py |
get_my_access |
|
8 |
0 |
0 |
|
100.00% |
| app/routers/deployments.py |
resend_access_credentials |
|
23 |
3 |
0 |
|
86.96% |
| app/routers/deployments.py |
stream_deployment_events |
|
10 |
10 |
0 |
|
0.00% |
| app/routers/deployments.py |
stream_deployment_events.event_stream |
|
23 |
23 |
0 |
|
0.00% |
| app/routers/deployments.py |
_event_name_for |
|
1 |
1 |
0 |
|
0.00% |
| app/routers/deployments.py |
_sse_frame |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/deployments.py |
(no function) |
|
79 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
_lock_state |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
_assert_unlocked |
|
3 |
1 |
0 |
|
66.67% |
| app/routers/openstack_credentials.py |
_to_response |
|
3 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
get_my_credentials |
|
3 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
upsert_my_credentials |
|
6 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
upsert_my_credentials_from_yaml |
|
7 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
test_my_credentials |
|
9 |
1 |
0 |
|
88.89% |
| app/routers/openstack_credentials.py |
delete_my_credentials |
|
6 |
0 |
0 |
|
100.00% |
| app/routers/openstack_credentials.py |
(no function) |
|
25 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
_safe_get |
|
8 |
3 |
0 |
|
62.50% |
| app/routers/openstack_resources.py |
_list_with_oserror |
|
7 |
5 |
0 |
|
28.57% |
| app/routers/openstack_resources.py |
refresh_cache |
|
3 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_networks |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_networks.fetch |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_subnets |
|
5 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_subnets.fetch |
|
5 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_flavors |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_flavors.fetch |
|
5 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_images |
|
3 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_images.fetch |
|
8 |
0 |
0 |
|
100.00% |
| app/routers/openstack_resources.py |
list_keypairs |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_keypairs.fetch |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_security_groups |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_security_groups.fetch |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_floating_ip_pools |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_floating_ip_pools.fetch |
|
8 |
8 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_volumes |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_volumes.fetch |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_routers |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_routers.fetch |
|
2 |
2 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_availability_zones |
|
3 |
3 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
list_availability_zones.fetch |
|
15 |
15 |
0 |
|
0.00% |
| app/routers/openstack_resources.py |
(no function) |
|
35 |
0 |
0 |
|
100.00% |
| app/routers/quotas.py |
_build_connect_kwargs |
|
5 |
1 |
0 |
|
80.00% |
| app/routers/quotas.py |
_quota_item |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/quotas.py |
_get_openstack_conn_for_user |
|
5 |
2 |
0 |
|
60.00% |
| app/routers/quotas.py |
get_quota_overview |
|
29 |
8 |
0 |
|
72.41% |
| app/routers/quotas.py |
(no function) |
|
40 |
0 |
0 |
|
100.00% |
| app/routers/tasks.py |
get_deployment_tasks |
|
6 |
1 |
0 |
|
83.33% |
| app/routers/tasks.py |
get_task |
|
9 |
1 |
0 |
|
88.89% |
| app/routers/tasks.py |
(no function) |
|
15 |
0 |
0 |
|
100.00% |
| app/routers/teams.py |
list_teams |
|
2 |
0 |
0 |
|
100.00% |
| app/routers/teams.py |
get_team |
|
4 |
0 |
0 |
|
100.00% |
| app/routers/teams.py |
create_team |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/teams.py |
update_team |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/teams.py |
delete_team |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/teams.py |
add_user_to_team |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/teams.py |
remove_user_from_team |
|
4 |
1 |
0 |
|
75.00% |
| app/routers/teams.py |
(no function) |
|
24 |
0 |
0 |
|
100.00% |
| app/routers/users.py |
get_me |
|
1 |
0 |
0 |
|
100.00% |
| app/routers/users.py |
list_users |
|
17 |
5 |
0 |
|
70.59% |
| app/routers/users.py |
search_users_keycloak |
|
9 |
1 |
0 |
|
88.89% |
| app/routers/users.py |
get_user |
|
6 |
1 |
0 |
|
83.33% |
| app/routers/users.py |
get_user_statistics |
|
7 |
1 |
0 |
|
85.71% |
| app/routers/users.py |
update_user |
|
10 |
2 |
0 |
|
80.00% |
| app/routers/users.py |
(no function) |
|
25 |
0 |
0 |
|
100.00% |
| app/schemas.py |
OpenStackCredentialUpsert._validate_required_fields |
|
6 |
0 |
0 |
|
100.00% |
| app/schemas.py |
(no function) |
|
284 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
clean_log_line |
|
4 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
is_verbose_line |
|
2 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
filter_logs |
|
11 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
format_logs |
|
20 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
_get_icon |
|
2 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
_translate_celery_infra_exception |
|
6 |
0 |
0 |
|
100.00% |
| app/services/celery_event_listener.py |
_update_task_progress |
|
18 |
18 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_custom_event |
|
6 |
6 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_task_started |
|
2 |
2 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_task_succeeded |
|
17 |
17 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_parse_structured_failure |
|
16 |
16 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_apply_structured_failure |
|
21 |
21 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_apply_infra_failure |
|
6 |
6 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_task_failed |
|
17 |
17 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_task_revoked |
|
2 |
2 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_auto_soft_delete_on_destroy |
|
5 |
5 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_notify_deploy_succeeded |
|
4 |
4 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_publish_lifecycle_transition |
|
4 |
4 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
_handle_lifecycle_event |
|
30 |
30 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
start_event_listener |
|
6 |
6 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
start_event_listener.handle_event |
|
8 |
8 |
0 |
|
0.00% |
| app/services/celery_event_listener.py |
(no function) |
|
37 |
0 |
2 |
|
100.00% |
| app/services/clouds_yaml_parser.py |
_bad |
|
1 |
0 |
0 |
|
100.00% |
| app/services/clouds_yaml_parser.py |
parse |
|
44 |
10 |
0 |
|
77.27% |
| app/services/clouds_yaml_parser.py |
(no function) |
|
8 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_display_name |
|
4 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_output_value |
|
6 |
2 |
0 |
|
66.67% |
| app/services/deployment_notifier.py |
_team_vms |
|
2 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_user_accounts |
|
2 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_vm_for_team |
|
4 |
1 |
0 |
|
75.00% |
| app/services/deployment_notifier.py |
_normalise_account_key |
|
12 |
2 |
0 |
|
83.33% |
| app/services/deployment_notifier.py |
_find_account_for_user |
|
17 |
2 |
0 |
|
88.24% |
| app/services/deployment_notifier.py |
_access_for_user |
|
12 |
1 |
0 |
|
91.67% |
| app/services/deployment_notifier.py |
_team_members |
|
1 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_send_user_mail |
|
3 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
_send_owner_mail |
|
3 |
0 |
0 |
|
100.00% |
| app/services/deployment_notifier.py |
notify_deployment_succeeded |
|
32 |
8 |
0 |
|
75.00% |
| app/services/deployment_notifier.py |
resend_user_access |
|
25 |
8 |
0 |
|
68.00% |
| app/services/deployment_notifier.py |
get_user_access |
|
26 |
3 |
0 |
|
88.46% |
| app/services/deployment_notifier.py |
(no function) |
|
26 |
0 |
0 |
|
100.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.__init__ |
|
4 |
0 |
0 |
|
100.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.set_loop |
|
1 |
1 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.subscribe |
|
5 |
5 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.recent |
|
3 |
3 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.unsubscribe |
|
9 |
9 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub.publish |
|
10 |
10 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
DeploymentPubSub._enqueue_or_drop |
|
6 |
6 |
0 |
|
0.00% |
| app/services/deployment_pubsub.py |
(no function) |
|
20 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
build_resource_views |
|
12 |
2 |
0 |
|
83.33% |
| app/services/deployment_status.py |
_view_from_cached |
|
1 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
_enrich_instances_stage1 |
|
14 |
6 |
0 |
|
57.14% |
| app/services/deployment_status.py |
_enrich_instances_stage1._one |
|
12 |
4 |
0 |
|
66.67% |
| app/services/deployment_status.py |
build_resource_detail |
|
26 |
6 |
0 |
|
76.92% |
| app/services/deployment_status.py |
_fetch_ports |
|
13 |
3 |
0 |
|
76.92% |
| app/services/deployment_status.py |
_fetch_sg_summaries |
|
21 |
5 |
0 |
|
76.19% |
| app/services/deployment_status.py |
_fetch_sg_summaries._direction |
|
1 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
_fetch_volumes |
|
30 |
9 |
0 |
|
70.00% |
| app/services/deployment_status.py |
_resolve_image_name |
|
6 |
3 |
0 |
|
50.00% |
| app/services/deployment_status.py |
_lifecycle_from |
|
8 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
_translate_power_state |
|
7 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
_hardware_from |
|
6 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
_addresses_from |
|
20 |
0 |
0 |
|
100.00% |
| app/services/deployment_status.py |
(no function) |
|
88 |
0 |
0 |
|
100.00% |
| app/services/email_service.py |
render |
|
2 |
2 |
0 |
|
0.00% |
| app/services/email_service.py |
is_smtp_enabled |
|
1 |
0 |
0 |
|
100.00% |
| app/services/email_service.py |
send_email |
|
33 |
33 |
0 |
|
0.00% |
| app/services/email_service.py |
(no function) |
|
17 |
0 |
0 |
|
100.00% |
| app/services/git_service.py |
GitService.__init__ |
|
3 |
0 |
0 |
|
100.00% |
| app/services/git_service.py |
GitService._create_http_session |
|
6 |
0 |
0 |
|
100.00% |
| app/services/git_service.py |
GitService._get_authenticated_url |
|
10 |
2 |
0 |
|
80.00% |
| app/services/git_service.py |
GitService._parse_git_url |
|
9 |
9 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._request_tags |
|
7 |
7 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._fetch_github_tags |
|
5 |
5 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._fetch_github_releases |
|
6 |
6 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._fetch_gitlab_tags |
|
5 |
5 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._fetch_gitlab_releases |
|
7 |
7 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._accept_github_invite |
|
19 |
19 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService._accept_gitlab_invite |
|
13 |
13 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService.verify_repository_access |
|
36 |
36 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService.clone_release_vars |
|
22 |
1 |
0 |
|
95.45% |
| app/services/git_service.py |
GitService.get_versions |
|
22 |
22 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService.get_versions.sort_key |
|
4 |
4 |
0 |
|
0.00% |
| app/services/git_service.py |
GitService.cleanup_repository |
|
4 |
4 |
0 |
|
0.00% |
| app/services/git_service.py |
(no function) |
|
30 |
0 |
0 |
|
100.00% |
| app/services/lifecycle.py |
allowed_actions |
|
5 |
1 |
0 |
|
80.00% |
| app/services/lifecycle.py |
ensure_action_allowed |
|
5 |
0 |
0 |
|
100.00% |
| app/services/lifecycle.py |
(no function) |
|
14 |
0 |
0 |
|
100.00% |
| app/services/openstack_client.py |
_build_connect_kwargs |
|
5 |
1 |
0 |
|
80.00% |
| app/services/openstack_client.py |
user_connection |
|
16 |
7 |
0 |
|
56.25% |
| app/services/openstack_client.py |
_make_key |
|
2 |
0 |
0 |
|
100.00% |
| app/services/openstack_client.py |
cached_list |
|
10 |
0 |
0 |
|
100.00% |
| app/services/openstack_client.py |
invalidate_user |
|
11 |
1 |
0 |
|
90.91% |
| app/services/openstack_client.py |
(no function) |
|
24 |
0 |
0 |
|
100.00% |
| app/services/openstack_validator.py |
_build_connect_kwargs |
|
5 |
0 |
0 |
|
100.00% |
| app/services/openstack_validator.py |
validate |
|
20 |
7 |
0 |
|
65.00% |
| app/services/openstack_validator.py |
(no function) |
|
9 |
0 |
0 |
|
100.00% |
| app/services/reconciler.py |
run_reconciler |
|
13 |
13 |
0 |
|
0.00% |
| app/services/reconciler.py |
_reconcile_once |
|
16 |
16 |
0 |
|
0.00% |
| app/services/reconciler.py |
_try_acquire_lock |
|
3 |
3 |
0 |
|
0.00% |
| app/services/reconciler.py |
_release_lock |
|
2 |
2 |
0 |
|
0.00% |
| app/services/reconciler.py |
_reconcile_task |
|
28 |
28 |
0 |
|
0.00% |
| app/services/reconciler.py |
_extract_success_payload |
|
9 |
9 |
0 |
|
0.00% |
| app/services/reconciler.py |
_extract_failure_logs |
|
7 |
7 |
0 |
|
0.00% |
| app/services/reconciler.py |
(no function) |
|
26 |
0 |
0 |
|
100.00% |
| app/services/task_service.py |
prepare_task_in_tx |
|
14 |
5 |
0 |
|
64.29% |
| app/services/task_service.py |
dispatch_to_celery |
|
14 |
7 |
0 |
|
50.00% |
| app/services/task_service.py |
(no function) |
|
13 |
0 |
0 |
|
100.00% |
| app/services/tf_state_parser.py |
parse_tf_state |
|
15 |
0 |
0 |
|
100.00% |
| app/services/tf_state_parser.py |
_coerce_state |
|
9 |
0 |
0 |
|
100.00% |
| app/services/tf_state_parser.py |
_build_entry |
|
8 |
0 |
0 |
|
100.00% |
| app/services/tf_state_parser.py |
_format_address |
|
10 |
2 |
0 |
|
80.00% |
| app/services/tf_state_parser.py |
_pick_display_name |
|
8 |
1 |
0 |
|
87.50% |
| app/services/tf_state_parser.py |
_extract_team |
|
9 |
1 |
0 |
|
88.89% |
| app/services/tf_state_parser.py |
(no function) |
|
23 |
0 |
0 |
|
100.00% |
| app/utils/app_image.py |
parse_image_data_url |
|
13 |
0 |
0 |
|
100.00% |
| app/utils/app_image.py |
build_image_data_url |
|
4 |
0 |
0 |
|
100.00% |
| app/utils/app_image.py |
(no function) |
|
8 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
_is_admin |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
_is_staff |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
_is_owner |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
_forbidden |
|
4 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_view_app |
|
9 |
1 |
0 |
|
88.89% |
| app/utils/capabilities.py |
ensure_view_app |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_list_all_apps |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_list_all_apps |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_edit_app |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_edit_app |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_delete_app |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_delete_app |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_submit_app_version |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_submit_app_version |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_approve_app_version |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_approve_app_version |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_view_deployment_member |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_view_deployment_member |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_view_deployment_owner |
|
10 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_view_deployment_owner |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_operate_deployment |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_operate_deployment |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_resend_access |
|
3 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_resend_access |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
is_course_teacher |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
is_course_teacher_id |
|
4 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
get_my_course_teacher_ids |
|
4 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_view_course_detail |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_view_course_detail |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_edit_course |
|
3 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_edit_course |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_view_user |
|
3 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_view_user |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
can_change_user_role |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
ensure_change_user_role |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/capabilities.py |
(no function) |
|
43 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
_build_cipher |
|
7 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
encrypt |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
decrypt |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
encrypt_b64 |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
decrypt_b64 |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/crypto.py |
(no function) |
|
11 |
0 |
0 |
|
100.00% |
| app/utils/keycloak_auth.py |
get_keycloak_client |
|
1 |
1 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
get_keycloak_admin |
|
1 |
1 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
_get_realm_public_key_pem |
|
8 |
8 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
verify_keycloak_token |
|
12 |
12 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
verify_keycloak_token_offline |
|
7 |
7 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
map_keycloak_roles_to_app_role |
|
5 |
1 |
0 |
|
80.00% |
| app/utils/keycloak_auth.py |
sync_user_from_keycloak |
|
36 |
12 |
0 |
|
66.67% |
| app/utils/keycloak_auth.py |
get_current_user_keycloak |
|
5 |
5 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
_project_keycloak_user |
|
4 |
4 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
search_keycloak_users |
|
6 |
6 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
get_keycloak_users_by_ids |
|
22 |
22 |
0 |
|
0.00% |
| app/utils/keycloak_auth.py |
refresh_user_from_keycloak |
|
21 |
4 |
0 |
|
80.95% |
| app/utils/keycloak_auth.py |
(no function) |
|
26 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
get_current_active_user |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
require_roles |
|
5 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
require_roles._dep |
|
3 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
has_deployment_access |
|
9 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
ensure_deployment_access |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
is_deployment_owner_view |
|
3 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
ensure_deployment_owner_view |
|
2 |
0 |
0 |
|
100.00% |
| app/utils/permissions.py |
(no function) |
|
15 |
0 |
0 |
|
100.00% |
| app/utils/time.py |
utcnow |
|
1 |
0 |
0 |
|
100.00% |
| app/utils/time.py |
(no function) |
|
2 |
0 |
0 |
|
100.00% |