| config.py |
(no class) |
|
83 |
2 |
12 |
|
98% |
| config_local.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| config_local_test.py |
(no class) |
|
1 |
1 |
0 |
|
0% |
| ivatar / __init__.py |
(no class) |
|
1 |
0 |
0 |
|
100% |
| ivatar / context_processors.py |
(no class) |
|
21 |
0 |
1 |
|
100% |
| ivatar / file_security.py |
FileUploadSecurityError |
|
0 |
0 |
0 |
|
100% |
| ivatar / file_security.py |
FileValidator |
|
116 |
14 |
0 |
|
88% |
| ivatar / file_security.py |
(no class) |
|
35 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / __init__.py |
(no class) |
|
1 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / admin.py |
(no class) |
|
13 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / auth.py |
FedoraOpenIdConnect |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / auth.py |
(no class) |
|
36 |
3 |
0 |
|
92% |
| ivatar / ivataraccount / forms.py |
AddEmailForm |
|
23 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
UploadPhotoForm |
|
50 |
16 |
0 |
|
68% |
| ivatar / ivataraccount / forms.py |
AddOpenIDForm |
|
13 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
UpdatePreferenceForm |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
UpdatePreferenceForm.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
UploadLibravatarExportForm |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
DeleteAccountForm |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / forms.py |
(no class) |
|
40 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / gravatar.py |
(no class) |
|
18 |
1 |
6 |
|
94% |
| ivatar / ivataraccount / migrations / 0001_initial.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0001_initial.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0002_openidassociation_openidnonce.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0002_openidassociation_openidnonce.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0003_auto_20180508_0637.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0003_auto_20180508_0637.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0004_auto_20180508_0742.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0004_auto_20180508_0742.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0005_auto_20180522_1155.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0005_auto_20180522_1155.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0006_auto_20180626_1445.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0006_auto_20180626_1445.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0007_auto_20180627_0624.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0007_auto_20180627_0624.py |
(no class) |
|
8 |
0 |
1 |
|
100% |
| ivatar / ivataraccount / migrations / 0008_userpreference.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0008_userpreference.py |
(no class) |
|
10 |
0 |
2 |
|
100% |
| ivatar / ivataraccount / migrations / 0009_auto_20180705_1152.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0009_auto_20180705_1152.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0010_auto_20180705_1201.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0010_auto_20180705_1201.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0011_auto_20181107_1550.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0011_auto_20181107_1550.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0012_auto_20181107_1732.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0012_auto_20181107_1732.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0013_auto_20181203_1421.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0013_auto_20181203_1421.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0014_auto_20190218_1602.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0014_auto_20190218_1602.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0015_auto_20200225_0934.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0015_auto_20200225_0934.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0016_auto_20210413_0904.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0016_auto_20210413_0904.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0017_auto_20210528_1314.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0017_auto_20210528_1314.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0018_alter_photo_format.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0018_alter_photo_format.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0019_confirmedemail_bluesky_handle.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0019_confirmedemail_bluesky_handle.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0020_confirmedopenid_bluesky_handle.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0020_confirmedopenid_bluesky_handle.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0021_add_performance_indexes.py |
Migration |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / migrations / 0021_add_performance_indexes.py |
(no class) |
|
41 |
19 |
0 |
|
54% |
| ivatar / ivataraccount / migrations / __init__.py |
(no class) |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
UserPreference |
|
1 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
BaseAccountModel |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
BaseAccountModel.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
Photo |
|
71 |
23 |
4 |
|
68% |
| ivatar / ivataraccount / models.py |
Photo.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
ConfirmedEmailManager |
|
10 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
ConfirmedEmail |
|
28 |
7 |
0 |
|
75% |
| ivatar / ivataraccount / models.py |
ConfirmedEmail.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
UnconfirmedEmail |
|
17 |
3 |
0 |
|
82% |
| ivatar / ivataraccount / models.py |
UnconfirmedEmail.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
UnconfirmedOpenId |
|
1 |
1 |
0 |
|
0% |
| ivatar / ivataraccount / models.py |
UnconfirmedOpenId.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
ConfirmedOpenId |
|
34 |
7 |
3 |
|
79% |
| ivatar / ivataraccount / models.py |
ConfirmedOpenId.Meta |
|
0 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / models.py |
OpenIDNonce |
|
1 |
1 |
0 |
|
0% |
| ivatar / ivataraccount / models.py |
OpenIDAssociation |
|
1 |
1 |
0 |
|
0% |
| ivatar / ivataraccount / models.py |
DjangoOpenIDStore |
|
0 |
0 |
92 |
|
100% |
| ivatar / ivataraccount / models.py |
(no class) |
|
143 |
0 |
11 |
|
100% |
| ivatar / ivataraccount / test_auth.py |
AuthFedoraTestCase |
|
21 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_auth.py |
(no class) |
|
15 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_views.py |
Tester |
|
535 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_views.py |
OpenIDErrorHandlingTestCase |
|
111 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_views.py |
(no class) |
|
135 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_views_bluesky.py |
Tester |
|
67 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / test_views_bluesky.py |
(no class) |
|
51 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / urls.py |
(no class) |
|
20 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
CreateView |
|
20 |
8 |
1 |
|
60% |
| ivatar / ivataraccount / views.py |
PasswordSetView |
|
6 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
AddEmailView |
|
4 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
RemoveUnconfirmedEmailView |
|
7 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
ConfirmEmailView |
|
20 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
RemoveConfirmedEmailView |
|
7 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
AssignPhotoEmailView |
|
29 |
2 |
0 |
|
93% |
| ivatar / ivataraccount / views.py |
AssignPhotoOpenIDView |
|
24 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
AssignBlueskyHandleToEmailView |
|
27 |
14 |
0 |
|
48% |
| ivatar / ivataraccount / views.py |
AssignBlueskyHandleToOpenIdView |
|
27 |
14 |
0 |
|
48% |
| ivatar / ivataraccount / views.py |
ImportPhotoView |
|
45 |
25 |
2 |
|
44% |
| ivatar / ivataraccount / views.py |
RawImageView |
|
4 |
1 |
0 |
|
75% |
| ivatar / ivataraccount / views.py |
DeletePhotoView |
|
8 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
UploadPhotoView |
|
21 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
AddOpenIDView |
|
3 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
RemoveUnconfirmedOpenIDView |
|
5 |
0 |
2 |
|
100% |
| ivatar / ivataraccount / views.py |
RemoveConfirmedOpenIDView |
|
12 |
1 |
0 |
|
92% |
| ivatar / ivataraccount / views.py |
RedirectOpenIDView |
|
11 |
0 |
13 |
|
100% |
| ivatar / ivataraccount / views.py |
ConfirmOpenIDView |
|
0 |
0 |
61 |
|
100% |
| ivatar / ivataraccount / views.py |
CropPhotoView |
|
14 |
4 |
0 |
|
71% |
| ivatar / ivataraccount / views.py |
UserPreferenceView |
|
32 |
31 |
0 |
|
3% |
| ivatar / ivataraccount / views.py |
UploadLibravatarExportView |
|
42 |
33 |
0 |
|
21% |
| ivatar / ivataraccount / views.py |
ResendConfirmationMailView |
|
8 |
8 |
2 |
|
0% |
| ivatar / ivataraccount / views.py |
IvatarLoginView |
|
11 |
4 |
0 |
|
64% |
| ivatar / ivataraccount / views.py |
ProfileView |
|
26 |
15 |
0 |
|
42% |
| ivatar / ivataraccount / views.py |
PasswordResetView |
|
15 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
DeleteAccountView |
|
10 |
4 |
0 |
|
60% |
| ivatar / ivataraccount / views.py |
ExportView |
|
50 |
0 |
0 |
|
100% |
| ivatar / ivataraccount / views.py |
(no class) |
|
199 |
0 |
16 |
|
100% |
| ivatar / middleware.py |
CustomLocaleMiddleware |
|
12 |
0 |
0 |
|
100% |
| ivatar / middleware.py |
MultipleProxyMiddleware |
|
2 |
1 |
0 |
|
50% |
| ivatar / middleware.py |
(no class) |
|
6 |
0 |
0 |
|
100% |
| ivatar / opentelemetry_config.py |
OpenTelemetryConfig |
|
88 |
23 |
0 |
|
74% |
| ivatar / opentelemetry_config.py |
(no class) |
|
59 |
5 |
0 |
|
92% |
| ivatar / opentelemetry_middleware.py |
OpenTelemetryMiddleware |
|
52 |
7 |
0 |
|
87% |
| ivatar / opentelemetry_middleware.py |
AvatarMetrics |
|
15 |
0 |
0 |
|
100% |
| ivatar / opentelemetry_middleware.py |
(no class) |
|
90 |
13 |
0 |
|
86% |
| ivatar / pagan_optimized.py |
OptimizedPagan |
|
37 |
9 |
0 |
|
76% |
| ivatar / pagan_optimized.py |
(no class) |
|
50 |
17 |
0 |
|
66% |
| ivatar / robohash.py |
OptimizedRobohash |
|
42 |
9 |
0 |
|
79% |
| ivatar / robohash.py |
(no class) |
|
41 |
8 |
0 |
|
80% |
| ivatar / settings.py |
(no class) |
|
71 |
16 |
0 |
|
77% |
| ivatar / telemetry_utils.py |
NoOpMetrics |
|
6 |
0 |
0 |
|
100% |
| ivatar / telemetry_utils.py |
(no class) |
|
27 |
0 |
0 |
|
100% |
| ivatar / test_auxiliary.py |
Tester |
|
9 |
0 |
0 |
|
100% |
| ivatar / test_auxiliary.py |
(no class) |
|
10 |
0 |
0 |
|
100% |
| ivatar / test_config_defaults.py |
ConfigurableDefaultsTestCase |
|
22 |
4 |
0 |
|
82% |
| ivatar / test_config_defaults.py |
(no class) |
|
17 |
1 |
0 |
|
94% |
| ivatar / test_file_security.py |
FileSecurityTestCase |
|
55 |
0 |
0 |
|
100% |
| ivatar / test_file_security.py |
UploadPhotoFormSecurityTestCase |
|
17 |
0 |
0 |
|
100% |
| ivatar / test_file_security.py |
UploadPhotoViewSecurityTestCase |
|
2 |
2 |
0 |
|
0% |
| ivatar / test_file_security.py |
FileSecurityIntegrationTestCase |
|
3 |
0 |
0 |
|
100% |
| ivatar / test_file_security.py |
(no class) |
|
32 |
0 |
0 |
|
100% |
| ivatar / test_graceful_degradation.py |
GracefulDegradationTestCase |
|
122 |
9 |
0 |
|
93% |
| ivatar / test_graceful_degradation.py |
(no class) |
|
25 |
1 |
0 |
|
96% |
| ivatar / test_no_opentelemetry.py |
NoOpenTelemetryTestCase |
|
112 |
7 |
0 |
|
94% |
| ivatar / test_no_opentelemetry.py |
OpenTelemetryFallbackIntegrationTest |
|
10 |
0 |
0 |
|
100% |
| ivatar / test_no_opentelemetry.py |
(no class) |
|
34 |
1 |
0 |
|
97% |
| ivatar / test_opentelemetry.py |
OpenTelemetryConfigTest |
|
62 |
9 |
0 |
|
85% |
| ivatar / test_opentelemetry.py |
OpenTelemetryMiddlewareTest |
|
22 |
0 |
0 |
|
100% |
| ivatar / test_opentelemetry.py |
AvatarMetricsTest |
|
7 |
0 |
0 |
|
100% |
| ivatar / test_opentelemetry.py |
TracingDecoratorsTest |
|
22 |
0 |
0 |
|
100% |
| ivatar / test_opentelemetry.py |
IntegrationTest |
|
10 |
0 |
0 |
|
100% |
| ivatar / test_opentelemetry.py |
OpenTelemetryDisabledTest |
|
23 |
0 |
0 |
|
100% |
| ivatar / test_opentelemetry.py |
PrometheusMetricsIntegrationTest |
|
147 |
43 |
0 |
|
71% |
| ivatar / test_opentelemetry.py |
(no class) |
|
63 |
1 |
0 |
|
98% |
| ivatar / test_pagan_optimized.py |
TestOptimizedPagan |
|
126 |
2 |
0 |
|
98% |
| ivatar / test_pagan_optimized.py |
TestPaganPerformance |
|
25 |
0 |
0 |
|
100% |
| ivatar / test_pagan_optimized.py |
(no class) |
|
26 |
1 |
0 |
|
96% |
| ivatar / test_robohash.py |
RobohashOptimizationTestCase |
|
91 |
0 |
0 |
|
100% |
| ivatar / test_robohash.py |
(no class) |
|
18 |
0 |
0 |
|
100% |
| ivatar / test_robohash_cached.py |
TestConsolidatedRobohash |
|
82 |
2 |
0 |
|
98% |
| ivatar / test_robohash_cached.py |
TestRobohashPerformance |
|
15 |
0 |
0 |
|
100% |
| ivatar / test_robohash_cached.py |
(no class) |
|
21 |
1 |
0 |
|
95% |
| ivatar / test_security_fixes.py |
ETagSanitizationTest |
|
39 |
0 |
0 |
|
100% |
| ivatar / test_security_fixes.py |
URLValidationTest |
|
27 |
0 |
0 |
|
100% |
| ivatar / test_security_fixes.py |
IntegrationTest |
|
18 |
0 |
0 |
|
100% |
| ivatar / test_security_fixes.py |
(no class) |
|
36 |
0 |
0 |
|
100% |
| ivatar / test_static_pages.py |
Tester |
|
8 |
1 |
0 |
|
88% |
| ivatar / test_static_pages.py |
(no class) |
|
21 |
0 |
0 |
|
100% |
| ivatar / test_telemetry_integration.py |
TelemetryIntegrationTestCase |
|
34 |
0 |
0 |
|
100% |
| ivatar / test_telemetry_integration.py |
MockTelemetryTestCase |
|
12 |
0 |
0 |
|
100% |
| ivatar / test_telemetry_integration.py |
(no class) |
|
23 |
1 |
0 |
|
96% |
| ivatar / test_utils.py |
Tester |
|
32 |
0 |
0 |
|
100% |
| ivatar / test_utils.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| ivatar / test_views.py |
Tester |
|
15 |
4 |
0 |
|
73% |
| ivatar / test_views.py |
(no class) |
|
26 |
0 |
0 |
|
100% |
| ivatar / test_views_stats.py |
StatsTester |
|
104 |
1 |
0 |
|
99% |
| ivatar / test_views_stats.py |
(no class) |
|
21 |
0 |
0 |
|
100% |
| ivatar / test_wsgi.py |
TestCase |
|
2 |
0 |
0 |
|
100% |
| ivatar / test_wsgi.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| ivatar / tools / __init__.py |
(no class) |
|
0 |
0 |
0 |
|
100% |
| ivatar / tools / forms.py |
CheckDomainForm |
|
0 |
0 |
0 |
|
100% |
| ivatar / tools / forms.py |
CheckForm |
|
20 |
8 |
0 |
|
60% |
| ivatar / tools / forms.py |
(no class) |
|
18 |
0 |
0 |
|
100% |
| ivatar / tools / test_views.py |
Tester |
|
24 |
0 |
0 |
|
100% |
| ivatar / tools / test_views.py |
(no class) |
|
21 |
0 |
0 |
|
100% |
| ivatar / tools / urls.py |
(no class) |
|
3 |
0 |
0 |
|
100% |
| ivatar / tools / views.py |
CheckDomainView |
|
11 |
0 |
0 |
|
100% |
| ivatar / tools / views.py |
CheckView |
|
46 |
13 |
0 |
|
72% |
| ivatar / tools / views.py |
(no class) |
|
99 |
40 |
0 |
|
60% |
| ivatar / urls.py |
(no class) |
|
19 |
3 |
0 |
|
84% |
| ivatar / utils.py |
Bluesky |
|
51 |
17 |
0 |
|
67% |
| ivatar / utils.py |
(no class) |
|
137 |
43 |
0 |
|
69% |
| ivatar / views.py |
CachingHttpResponse |
|
3 |
0 |
0 |
|
100% |
| ivatar / views.py |
AvatarImageView |
|
139 |
52 |
0 |
|
63% |
| ivatar / views.py |
GravatarProxyView |
|
58 |
40 |
0 |
|
31% |
| ivatar / views.py |
BlueskyProxyView |
|
77 |
77 |
0 |
|
0% |
| ivatar / views.py |
StatsView |
|
61 |
3 |
0 |
|
95% |
| ivatar / views.py |
DeploymentVersionView |
|
13 |
7 |
0 |
|
46% |
| ivatar / views.py |
(no class) |
|
148 |
25 |
0 |
|
83% |
| ivatar / wsgi.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| manage.py |
(no class) |
|
7 |
7 |
2 |
|
0% |
| scripts / run_tests_with_coverage.py |
(no class) |
|
25 |
2 |
0 |
|
92% |
| setup.py |
(no class) |
|
2 |
2 |
0 |
|
0% |