Coverage report: 83%

Files Functions Classes

coverage.py v7.11.0, created at 2025-10-24 23:06 +0000

File function statements missing excluded coverage
config.py map_legacy_config 3 1 0 67%
config.py (no function) 75 1 12 99%
config_local.py (no function) 5 0 0 100%
config_local_test.py (no function) 1 1 0 0%
ivatar/__init__.py (no function) 1 0 0 100%
ivatar/context_processors.py basepage 17 0 1 100%
ivatar/context_processors.py (no function) 5 0 0 100%
ivatar/file_security.py FileValidator.__init__ 4 0 0 100%
ivatar/file_security.py FileValidator.validate_basic 12 2 0 83%
ivatar/file_security.py FileValidator.validate_magic_bytes 13 0 0 100%
ivatar/file_security.py FileValidator.validate_mime_type 11 3 0 73%
ivatar/file_security.py FileValidator.validate_pil_image 14 3 0 79%
ivatar/file_security.py FileValidator.sanitize_exif_data 13 2 0 85%
ivatar/file_security.py FileValidator.scan_for_malicious_content 10 0 0 100%
ivatar/file_security.py FileValidator.comprehensive_validation 39 4 0 90%
ivatar/file_security.py validate_uploaded_file 6 0 0 100%
ivatar/file_security.py get_file_security_report 2 0 0 100%
ivatar/file_security.py (no function) 27 0 0 100%
ivatar/ivataraccount/__init__.py (no function) 1 0 0 100%
ivatar/ivataraccount/admin.py (no function) 13 0 0 100%
ivatar/ivataraccount/auth.py add_confirmed_email 13 2 0 85%
ivatar/ivataraccount/auth.py associate_by_confirmed_email 12 1 0 92%
ivatar/ivataraccount/auth.py (no function) 11 0 0 100%
ivatar/ivataraccount/forms.py AddEmailForm.clean_email 1 0 0 100%
ivatar/ivataraccount/forms.py AddEmailForm.save 22 0 0 100%
ivatar/ivataraccount/forms.py UploadPhotoForm.clean_photo 36 11 0 69%
ivatar/ivataraccount/forms.py UploadPhotoForm.save 14 5 0 64%
ivatar/ivataraccount/forms.py AddOpenIDForm.clean_openid 2 0 0 100%
ivatar/ivataraccount/forms.py AddOpenIDForm.save 11 0 0 100%
ivatar/ivataraccount/forms.py (no function) 40 0 0 100%
ivatar/ivataraccount/gravatar.py get_photo 12 1 6 92%
ivatar/ivataraccount/gravatar.py (no function) 6 0 0 100%
ivatar/ivataraccount/migrations/0001_initial.py (no function) 7 0 0 100%
ivatar/ivataraccount/migrations/0002_openidassociation_openidnonce.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0003_auto_20180508_0637.py (no function) 5 0 0 100%
ivatar/ivataraccount/migrations/0004_auto_20180508_0742.py (no function) 5 0 0 100%
ivatar/ivataraccount/migrations/0005_auto_20180522_1155.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0006_auto_20180626_1445.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0007_auto_20180627_0624.py add_sha256 2 0 1 100%
ivatar/ivataraccount/migrations/0007_auto_20180627_0624.py (no function) 6 0 0 100%
ivatar/ivataraccount/migrations/0008_userpreference.py add_preference_to_user 3 0 2 100%
ivatar/ivataraccount/migrations/0008_userpreference.py (no function) 7 0 0 100%
ivatar/ivataraccount/migrations/0009_auto_20180705_1152.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0010_auto_20180705_1201.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0011_auto_20181107_1550.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0012_auto_20181107_1732.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0013_auto_20181203_1421.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0014_auto_20190218_1602.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0015_auto_20200225_0934.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0016_auto_20210413_0904.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0017_auto_20210528_1314.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0018_alter_photo_format.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0019_confirmedemail_bluesky_handle.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0020_confirmedopenid_bluesky_handle.py (no function) 4 0 0 100%
ivatar/ivataraccount/migrations/0021_add_performance_indexes.py create_indexes 26 11 0 58%
ivatar/ivataraccount/migrations/0021_add_performance_indexes.py drop_indexes 8 8 0 0%
ivatar/ivataraccount/migrations/0021_add_performance_indexes.py (no function) 7 0 0 100%
ivatar/ivataraccount/migrations/__init__.py (no function) 0 0 0 100%
ivatar/ivataraccount/models.py file_format 9 0 0 100%
ivatar/ivataraccount/models.py pil_format 10 0 0 100%
ivatar/ivataraccount/models.py UserPreference.__str__ 1 0 0 100%
ivatar/ivataraccount/models.py Photo.import_image 24 8 4 67%
ivatar/ivataraccount/models.py Photo.save 10 0 0 100%
ivatar/ivataraccount/models.py Photo.perform_crop 36 14 0 61%
ivatar/ivataraccount/models.py Photo.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py ConfirmedEmailManager.create_confirmed_email 10 0 0 100%
ivatar/ivataraccount/models.py ConfirmedEmail.set_photo 2 0 0 100%
ivatar/ivataraccount/models.py ConfirmedEmail.set_bluesky_handle 7 0 0 100%
ivatar/ivataraccount/models.py ConfirmedEmail.save 18 6 0 67%
ivatar/ivataraccount/models.py ConfirmedEmail.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py UnconfirmedEmail.save 5 0 0 100%
ivatar/ivataraccount/models.py UnconfirmedEmail.send_confirmation_mail 11 2 0 82%
ivatar/ivataraccount/models.py UnconfirmedEmail.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py UnconfirmedOpenId.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py ConfirmedOpenId.set_photo 2 0 0 100%
ivatar/ivataraccount/models.py ConfirmedOpenId.set_bluesky_handle 7 0 0 100%
ivatar/ivataraccount/models.py ConfirmedOpenId.save 24 6 3 75%
ivatar/ivataraccount/models.py ConfirmedOpenId.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py OpenIDNonce.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py OpenIDAssociation.__str__ 1 1 0 0%
ivatar/ivataraccount/models.py DjangoOpenIDStore.storeAssociation 0 0 12 100%
ivatar/ivataraccount/models.py DjangoOpenIDStore.getAssociation 0 0 37 100%
ivatar/ivataraccount/models.py DjangoOpenIDStore.removeAssociation 0 0 12 100%
ivatar/ivataraccount/models.py DjangoOpenIDStore.useNonce 0 0 19 100%
ivatar/ivataraccount/models.py DjangoOpenIDStore.cleanupNonces 0 0 6 100%
ivatar/ivataraccount/models.py DjangoOpenIDStore.cleanupAssociations 0 0 6 100%
ivatar/ivataraccount/models.py (no function) 124 0 11 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase._authenticate 3 0 0 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase.test_new_user 3 0 0 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase.test_new_user_untrusted_backend 2 0 0 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase.test_existing_user 4 0 0 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase.test_existing_user_with_confirmed_email 4 0 0 100%
ivatar/ivataraccount/test_auth.py AuthFedoraTestCase.test_existing_confirmed_email 5 0 0 100%
ivatar/ivataraccount/test_auth.py (no function) 15 0 0 100%
ivatar/ivataraccount/test_views.py Tester.login 1 0 0 100%
ivatar/ivataraccount/test_views.py Tester.setUp 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_new_user 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_new_user_twice 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_set_password 11 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_email 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_confirm_email 10 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_confirm_email_w_invalid_auth_key 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_confirm_email_w_non_existing_auth_key 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_confirmed_email 11 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_not_existing_confirmed_email 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_unconfirmed_email 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_gravatar_photo_import 12 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_raw_image 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_delete_photo 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_delete_non_existing_photo 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_too_many_unconfirmed_email 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_mail_address_twice 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_already_confirmed_email_self 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_already_confirmed_email_other 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_unconfirmed_non_existing_email 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_image 12 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_too_many_images 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_too_big_image 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_invalid_image 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_invalid_image_format 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_gif_image 1 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_jpg_image 1 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_webp_image 1 0 0 100%
ivatar/ivataraccount/test_views.py Tester._extracted_from_test_upload_webp_image_5 12 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_unsupported_tif_image 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_automatic_photo_assign_to_confirmed_mail 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_email 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_no_photo_to_email 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_email_wo_photo_for_testing_template 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_invalid_photo_id_to_email 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_post_to_assign_photo_without_photo_id 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_non_existing_mail 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_import_photo_with_non_existing_email 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_import_nothing 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester._manual_confirm 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_openid 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_add_openid_twice 17 0 0 100%
ivatar/ivataraccount/test_views.py Tester._check_form_validity 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_openid 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_openid_wo_photo_for_testing_template 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_invalid_photo_id_to_openid 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_post_to_assign_photo_openid_without_photo_id 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_assign_photo_to_openid_non_existing_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_confirmed_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_not_existing_confirmed_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_unconfirmed_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_remove_unconfirmed_non_existing_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_openid_redirect_view 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_set_photo_on_openid 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_mail 9 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_openid 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest_gravatarproxy_disabled 7 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest_w_default_mm 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest_w_default_mm_gravatarproxy_disabled 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest_wo_default 9 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_non_existing_mail_digest_wo_default_gravatarproxy_disabled 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_default 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_default_gravatarproxy_disabled 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_default_external 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_default_external_trusted 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_avatar_url_default_external_gravatarproxy_disabled 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_crop_photo 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_change_view 4 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_change_view_post_wrong_old_pw 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_change_view_post_wrong_new_password1 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_change_view_post_wrong_new_password2 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_change_view_post_common_password 3 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_profile_must_list_first_and_lastname 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_reset_page 2 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_reset_wo_mail 6 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_reset_w_mail 8 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_password_reset_w_confirmed_mail 10 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_export 24 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_upload_export 10 0 0 100%
ivatar/ivataraccount/test_views.py Tester._uploading_export_check 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_preferences_page 2 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_delete_user 5 0 0 100%
ivatar/ivataraccount/test_views.py Tester.test_confirm_already_confirmed 8 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.setUp 4 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.login 1 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_discovery_failure_renders_error_template 17 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_confirmation_failure_renders_error_template 17 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_cancellation_renders_error_template 16 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_unknown_error_renders_error_template 15 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_nonexistent_id_error 6 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_django_openid_auth_failure_template_coverage 3 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_error_template_direct_rendering 19 0 0 100%
ivatar/ivataraccount/test_views.py OpenIDErrorHandlingTestCase.test_openid_failure_template_inheritance 13 0 0 100%
ivatar/ivataraccount/test_views.py (no function) 134 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.login 1 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.setUp 3 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.tearDown 1 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.create_confirmed_openid 1 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.create_confirmed_email 1 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_handle_for_mail_via_model_handle_does_not_exist 6 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_handle_for_mail_via_model_handle_exists 4 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_handle_for_openid_via_model_handle_does_not_exist 6 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_handle_for_openid_via_model_handle_exists 4 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_fetch_mail 8 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_bluesky_fetch_openid 8 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_assign_bluesky_handle_to_openid 3 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_assign_bluesky_handle_to_email 3 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester._assign_handle_to 5 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_assign_photo_to_mail_removes_bluesky_handle 3 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester.test_assign_photo_to_openid_removes_bluesky_handle 3 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py Tester._assign_bluesky_handle 7 0 0 100%
ivatar/ivataraccount/test_views_bluesky.py (no function) 51 0 0 100%
ivatar/ivataraccount/urls.py (no function) 20 0 0 100%
ivatar/ivataraccount/views.py openid_logging 0 0 2 100%
ivatar/ivataraccount/views.py CreateView.form_valid 9 0 1 100%
ivatar/ivataraccount/views.py CreateView._extracted_from_form_valid_ 8 7 0 12%
ivatar/ivataraccount/views.py CreateView.get 3 1 0 67%
ivatar/ivataraccount/views.py PasswordSetView.get_form_kwargs 3 0 0 100%
ivatar/ivataraccount/views.py PasswordSetView.form_valid 3 0 0 100%
ivatar/ivataraccount/views.py AddEmailView.form_valid 4 0 0 100%
ivatar/ivataraccount/views.py RemoveUnconfirmedEmailView.post 7 0 0 100%
ivatar/ivataraccount/views.py ConfirmEmailView.get 20 0 0 100%
ivatar/ivataraccount/views.py RemoveConfirmedEmailView.post 7 0 0 100%
ivatar/ivataraccount/views.py AssignPhotoEmailView.post 26 2 0 92%
ivatar/ivataraccount/views.py AssignPhotoEmailView.get_context_data 3 0 0 100%
ivatar/ivataraccount/views.py AssignPhotoOpenIDView.post 21 0 0 100%
ivatar/ivataraccount/views.py AssignPhotoOpenIDView.get_context_data 3 0 0 100%
ivatar/ivataraccount/views.py AssignBlueskyHandleToEmailView.post 24 11 0 54%
ivatar/ivataraccount/views.py AssignBlueskyHandleToEmailView.get_context_data 3 3 0 0%
ivatar/ivataraccount/views.py AssignBlueskyHandleToOpenIdView.post 24 11 0 54%
ivatar/ivataraccount/views.py AssignBlueskyHandleToOpenIdView.get_context_data 3 3 0 0%
ivatar/ivataraccount/views.py ImportPhotoView.get_context_data 19 19 0 0%
ivatar/ivataraccount/views.py ImportPhotoView.post 26 6 2 77%
ivatar/ivataraccount/views.py RawImageView.get 4 1 0 75%
ivatar/ivataraccount/views.py DeletePhotoView.get 8 0 0 100%
ivatar/ivataraccount/views.py UploadPhotoView.post 5 0 0 100%
ivatar/ivataraccount/views.py UploadPhotoView.form_valid 13 0 0 100%
ivatar/ivataraccount/views.py AddOpenIDView.form_valid 3 0 0 100%
ivatar/ivataraccount/views.py RemoveUnconfirmedOpenIDView.post 5 0 2 100%
ivatar/ivataraccount/views.py RemoveConfirmedOpenIDView.post 12 1 0 92%
ivatar/ivataraccount/views.py RedirectOpenIDView.get 11 0 13 100%
ivatar/ivataraccount/views.py ConfirmOpenIDView.do_request 0 0 53 100%
ivatar/ivataraccount/views.py ConfirmOpenIDView.get 0 0 4 100%
ivatar/ivataraccount/views.py ConfirmOpenIDView.post 0 0 4 100%
ivatar/ivataraccount/views.py CropPhotoView.get 4 0 0 100%
ivatar/ivataraccount/views.py CropPhotoView.post 10 4 0 60%
ivatar/ivataraccount/views.py UserPreferenceView.post 29 29 0 0%
ivatar/ivataraccount/views.py UserPreferenceView.get 1 0 0 100%
ivatar/ivataraccount/views.py UserPreferenceView.get_object 2 2 0 0%
ivatar/ivataraccount/views.py UploadLibravatarExportView.post 35 33 0 6%
ivatar/ivataraccount/views.py UploadLibravatarExportView.form_valid 7 0 0 100%
ivatar/ivataraccount/views.py ResendConfirmationMailView.get 8 8 2 0%
ivatar/ivataraccount/views.py IvatarLoginView.get 7 4 0 43%
ivatar/ivataraccount/views.py IvatarLoginView.get_context_data 3 0 0 100%
ivatar/ivataraccount/views.py ProfileView.get 8 5 0 38%
ivatar/ivataraccount/views.py ProfileView.get_context_data 6 0 0 100%
ivatar/ivataraccount/views.py ProfileView._confirm_claimed_openid 12 10 0 17%
ivatar/ivataraccount/views.py PasswordResetView.post 15 3 0 80%
ivatar/ivataraccount/views.py DeleteAccountView.get 1 0 0 100%
ivatar/ivataraccount/views.py DeleteAccountView.post 9 4 0 56%
ivatar/ivataraccount/views.py ExportView.get 1 0 0 100%
ivatar/ivataraccount/views.py ExportView.post 27 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_header 1 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_footer 1 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_account 3 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_email 5 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_openid 5 0 0 100%
ivatar/ivataraccount/views.py ExportView.post.xml_photos 7 0 0 100%
ivatar/ivataraccount/views.py (no function) 191 0 14 100%
ivatar/middleware.py CustomLocaleMiddleware.process_response 11 1 0 91%
ivatar/middleware.py MultipleProxyMiddleware.process_request 2 1 0 50%
ivatar/middleware.py (no function) 6 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig.__init__ 5 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig._is_export_enabled 1 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig._get_service_name 1 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig._get_environment 1 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig._create_resource 1 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig.setup_tracing 15 4 0 73%
ivatar/opentelemetry_config.py OpenTelemetryConfig.setup_metrics 31 10 0 68%
ivatar/opentelemetry_config.py OpenTelemetryConfig._start_prometheus_server 16 5 0 69%
ivatar/opentelemetry_config.py OpenTelemetryConfig.setup_instrumentation 9 2 0 78%
ivatar/opentelemetry_config.py OpenTelemetryConfig.get_tracer 1 0 0 100%
ivatar/opentelemetry_config.py OpenTelemetryConfig.get_meter 1 0 0 100%
ivatar/opentelemetry_config.py get_ot_config 3 0 0 100%
ivatar/opentelemetry_config.py setup_opentelemetry 14 4 0 71%
ivatar/opentelemetry_config.py get_tracer 1 0 0 100%
ivatar/opentelemetry_config.py get_meter 1 0 0 100%
ivatar/opentelemetry_config.py is_enabled 1 0 0 100%
ivatar/opentelemetry_config.py is_export_enabled 1 1 0 0%
ivatar/opentelemetry_config.py (no function) 36 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware.__init__ 1 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware.__call__ 6 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware.process_request 8 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware.process_response 14 1 0 93%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._is_avatar_request 1 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._add_avatar_attributes 7 2 0 71%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._get_avatar_size 2 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._get_avatar_format 2 0 0 100%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._get_avatar_email 7 3 0 57%
ivatar/opentelemetry_middleware.py OpenTelemetryMiddleware._get_client_ip 4 1 0 75%
ivatar/opentelemetry_middleware.py trace_avatar_operation 3 0 0 100%
ivatar/opentelemetry_middleware.py trace_avatar_operation.decorator 2 0 0 100%
ivatar/opentelemetry_middleware.py trace_avatar_operation.decorator.wrapper 12 1 0 92%
ivatar/opentelemetry_middleware.py trace_file_upload 3 0 0 100%
ivatar/opentelemetry_middleware.py trace_file_upload.decorator 2 0 0 100%
ivatar/opentelemetry_middleware.py trace_file_upload.decorator.wrapper 15 8 0 47%
ivatar/opentelemetry_middleware.py trace_authentication 3 0 0 100%
ivatar/opentelemetry_middleware.py trace_authentication.decorator 2 0 0 100%
ivatar/opentelemetry_middleware.py trace_authentication.decorator.wrapper 10 4 0 60%
ivatar/opentelemetry_middleware.py AvatarMetrics.__init__ 8 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_avatar_request 1 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_avatar_generated 1 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_cache_hit 1 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_cache_miss 1 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_external_request 1 0 0 100%
ivatar/opentelemetry_middleware.py AvatarMetrics.record_file_upload 2 0 0 100%
ivatar/opentelemetry_middleware.py get_avatar_metrics 3 0 0 100%
ivatar/opentelemetry_middleware.py reset_avatar_metrics 1 0 0 100%
ivatar/opentelemetry_middleware.py (no function) 34 0 0 100%
ivatar/robohash_optimized.py OptimizedRobohash.__init__ 4 0 0 100%
ivatar/robohash_optimized.py OptimizedRobohash._initialize_cache 25 4 0 84%
ivatar/robohash_optimized.py OptimizedRobohash._cache_directory_structure 24 5 0 79%
ivatar/robohash_optimized.py OptimizedRobohash._cache_background_files 8 3 0 62%
ivatar/robohash_optimized.py OptimizedRobohash._get_list_of_files_optimized 19 2 0 89%
ivatar/robohash_optimized.py OptimizedRobohash.assemble_fast 60 32 0 47%
ivatar/robohash_optimized.py create_optimized_robohash 19 10 0 47%
ivatar/robohash_optimized.py (no function) 17 0 0 100%
ivatar/settings.py _test_logs_directory_writeability 9 2 0 78%
ivatar/settings.py (no function) 62 14 0 77%
ivatar/test_auxiliary.py Tester.setUp 1 0 0 100%
ivatar/test_auxiliary.py Tester.test_pil_format 6 0 0 100%
ivatar/test_auxiliary.py Tester.test_userprefs_str 2 0 0 100%
ivatar/test_auxiliary.py (no function) 10 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.setUp 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.tearDown 1 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_valid_jpeg_validation 7 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_magic_bytes_validation 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_malicious_content_detection 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_file_size_validation 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_invalid_extension_validation 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_exif_sanitization 4 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_comprehensive_validation_function 6 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_security_report_generation 6 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_mime_type_validation 5 0 0 100%
ivatar/test_file_security.py FileSecurityTestCase.test_polyglot_attack_detection 6 0 0 100%
ivatar/test_file_security.py UploadPhotoFormSecurityTestCase.setUp 1 0 0 100%
ivatar/test_file_security.py UploadPhotoFormSecurityTestCase.test_form_validation_with_valid_file 7 0 0 100%
ivatar/test_file_security.py UploadPhotoFormSecurityTestCase.test_form_validation_with_malicious_file 9 0 0 100%
ivatar/test_file_security.py UploadPhotoViewSecurityTestCase.setUp 1 1 0 0%
ivatar/test_file_security.py UploadPhotoViewSecurityTestCase.tearDown 1 1 0 0%
ivatar/test_file_security.py FileSecurityIntegrationTestCase.setUp 1 0 0 100%
ivatar/test_file_security.py FileSecurityIntegrationTestCase.test_end_to_end_security_validation 1 0 0 100%
ivatar/test_file_security.py FileSecurityIntegrationTestCase.test_security_logging 1 0 0 100%
ivatar/test_file_security.py (no function) 32 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.setUp 1 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.tearDown 2 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_config_always_enabled 2 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_config_enabled_with_env_var 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_service_name_default 7 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_service_name_custom 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_environment_default 7 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_environment_custom 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_resource_creation 10 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_setup_tracing_with_otlp 7 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_setup_metrics_with_prometheus_and_otlp 9 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryConfigTest.test_setup_instrumentation 7 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.setUp 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_middleware_enabled 11 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_avatar_request_attributes 12 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_is_avatar_request 4 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_get_avatar_size 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_get_avatar_format 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryMiddlewareTest.test_get_avatar_email 3 0 0 100%
ivatar/test_opentelemetry.py AvatarMetricsTest.setUp 1 0 0 100%
ivatar/test_opentelemetry.py AvatarMetricsTest.test_metrics_enabled 13 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_avatar_operation 10 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_avatar_operation.test_function 1 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_avatar_operation_exception 10 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_avatar_operation_exception.test_function 1 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_file_upload 4 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_file_upload.test_function 1 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_authentication 4 0 0 100%
ivatar/test_opentelemetry.py TracingDecoratorsTest.test_trace_authentication.test_function 1 0 0 100%
ivatar/test_opentelemetry.py IntegrationTest.setUp 1 0 0 100%
ivatar/test_opentelemetry.py IntegrationTest.tearDown 2 0 0 100%
ivatar/test_opentelemetry.py IntegrationTest.test_setup_opentelemetry_called 3 0 0 100%
ivatar/test_opentelemetry.py IntegrationTest.test_is_enabled_function 4 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.setUp 3 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.tearDown 2 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.test_opentelemetry_always_enabled 1 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.test_decorators_work 4 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.test_decorators_work.test_function 1 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.test_metrics_work 6 0 0 100%
ivatar/test_opentelemetry.py OpenTelemetryDisabledTest.test_middleware_enabled 6 0 0 100%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.setUp 6 0 0 100%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.tearDown 3 0 0 100%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_prometheus_server_starts 10 2 0 80%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_custom_metrics_available 27 8 0 70%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_metrics_increment_correctly 26 10 0 62%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_different_metric_labels 28 10 0 64%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_histogram_metrics 24 7 0 71%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_server_port_conflict_handling 8 0 0 100%
ivatar/test_opentelemetry.py PrometheusMetricsIntegrationTest.test_no_prometheus_endpoint_in_production_mode 10 1 0 90%
ivatar/test_opentelemetry.py (no function) 79 1 0 99%
ivatar/test_robohash.py RobohashOptimizationTestCase.setUp 3 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_optimized_robohash_functionality 9 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_identical_results 12 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_performance_improvement 11 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_integration_function 8 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_cache_initialization 4 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_multiple_random_emails_identical_results 16 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_performance_improvement_multiple_cases 17 0 0 100%
ivatar/test_robohash.py RobohashOptimizationTestCase.test_random_email_generation_and_processing 19 0 0 100%
ivatar/test_robohash.py (no function) 18 0 0 100%
ivatar/test_static_pages.py Tester.login 1 1 0 0%
ivatar/test_static_pages.py Tester.setUp 1 0 0 100%
ivatar/test_static_pages.py Tester.test_contact_page 2 0 0 100%
ivatar/test_static_pages.py Tester.test_description_page 2 0 0 100%
ivatar/test_static_pages.py Tester.test_security_page 2 0 0 100%
ivatar/test_static_pages.py (no function) 21 0 0 100%
ivatar/test_utils.py Tester.test_openid_variations 20 0 0 100%
ivatar/test_utils.py Tester.test_is_trusted_url 12 0 0 100%
ivatar/test_utils.py (no function) 5 0 0 100%
ivatar/test_views.py Tester.login 1 0 0 100%
ivatar/test_views.py Tester.setUp 1 0 0 100%
ivatar/test_views.py Tester.test_incorrect_digest 2 0 0 100%
ivatar/test_views.py Tester.test_logout 5 0 0 100%
ivatar/test_views.py Tester.test_Bluesky_client 6 4 0 33%
ivatar/test_views.py (no function) 26 0 0 100%
ivatar/test_views_stats.py StatsTester.login 1 1 0 0%
ivatar/test_views_stats.py StatsTester.setUp 1 0 0 100%
ivatar/test_views_stats.py StatsTester.test_stats_basic 9 0 0 100%
ivatar/test_views_stats.py StatsTester.test_stats_comprehensive 57 0 0 100%
ivatar/test_views_stats.py StatsTester.test_stats_edge_cases 10 0 0 100%
ivatar/test_views_stats.py StatsTester.test_stats_with_bluesky_handles 15 0 0 100%
ivatar/test_views_stats.py StatsTester.test_stats_photo_duplicates 11 0 0 100%
ivatar/test_views_stats.py (no function) 21 0 0 100%
ivatar/test_wsgi.py TestCase.test_run_wsgi 2 0 0 100%
ivatar/test_wsgi.py (no function) 7 0 0 100%
ivatar/tools/__init__.py (no function) 0 0 0 100%
ivatar/tools/forms.py CheckForm.clean 16 8 0 50%
ivatar/tools/forms.py CheckForm.clean_openid 2 0 0 100%
ivatar/tools/forms.py CheckForm.clean_mail 2 0 0 100%
ivatar/tools/forms.py (no function) 18 0 0 100%
ivatar/tools/test_views.py Tester.login 1 0 0 100%
ivatar/tools/test_views.py Tester.setUp 1 0 0 100%
ivatar/tools/test_views.py Tester.test_check_mail 8 0 0 100%
ivatar/tools/test_views.py Tester.test_check_openid 7 0 0 100%
ivatar/tools/test_views.py Tester.test_check_domain 7 0 0 100%
ivatar/tools/test_views.py (no function) 21 0 0 100%
ivatar/tools/urls.py (no function) 3 0 0 100%
ivatar/tools/views.py CheckDomainView.form_valid 11 0 0 100%
ivatar/tools/views.py CheckView.form_valid 46 13 0 72%
ivatar/tools/views.py lookup_avatar_server 27 9 0 67%
ivatar/tools/views.py srv_hostname 29 25 0 14%
ivatar/tools/views.py lookup_ip_address 18 6 0 67%
ivatar/tools/views.py (no function) 25 0 0 100%
ivatar/urls.py (no function) 19 3 0 84%
ivatar/utils.py urlopen 7 0 0 100%
ivatar/utils.py Bluesky.__init__ 3 0 0 100%
ivatar/utils.py Bluesky._is_session_valid 4 2 0 50%
ivatar/utils.py Bluesky.login 12 3 0 75%
ivatar/utils.py Bluesky.clear_shared_session 3 0 0 100%
ivatar/utils.py Bluesky.normalize_handle 7 3 0 57%
ivatar/utils.py Bluesky._make_profile_request 17 9 0 47%
ivatar/utils.py Bluesky.get_profile 3 0 0 100%
ivatar/utils.py Bluesky.get_avatar 2 0 0 100%
ivatar/utils.py random_string 1 0 0 100%
ivatar/utils.py generate_random_email 4 0 0 100%
ivatar/utils.py random_ip_address 1 0 0 100%
ivatar/utils.py openid_variations 8 0 0 100%
ivatar/utils.py mm_ng 32 32 0 0%
ivatar/utils.py is_trusted_url 24 1 0 96%
ivatar/utils.py resize_animated_gif 6 6 0 0%
ivatar/utils.py resize_animated_gif._thumbnail_frames 4 4 0 0%
ivatar/utils.py (no function) 39 0 0 100%
ivatar/views.py get_size 12 1 0 92%
ivatar/views.py CachingHttpResponse.__init__ 3 0 0 100%
ivatar/views.py AvatarImageView.options 3 3 0 0%
ivatar/views.py AvatarImageView.get 123 38 0 69%
ivatar/views.py AvatarImageView._redirect_static_w_size 4 1 0 75%
ivatar/views.py AvatarImageView._return_cached_response 5 5 0 0%
ivatar/views.py AvatarImageView._return_cached_png 2 2 0 0%
ivatar/views.py GravatarProxyView.get 50 35 0 30%
ivatar/views.py GravatarProxyView.get.redir_default 4 1 0 75%
ivatar/views.py BlueskyProxyView.get 69 69 0 0%
ivatar/views.py BlueskyProxyView.get.redir_default 4 4 0 0%
ivatar/views.py StatsView.get 61 3 0 95%
ivatar/views.py _get_git_info_from_files 68 68 0 0%
ivatar/views.py _get_cached_version_info 6 6 0 0%
ivatar/views.py DeploymentVersionView.get 4 4 0 0%
ivatar/views.py (no function) 78 17 0 78%
ivatar/wsgi.py (no function) 4 0 0 100%
manage.py (no function) 7 7 2 0%
scripts/run_tests_with_coverage.py main 17 2 0 88%
scripts/run_tests_with_coverage.py (no function) 8 0 0 100%
setup.py (no function) 2 2 0 0%
Total   4929 825 231 83%

No items found using the specified filter.