| src/lexigram/auth/__init__.py |
__getattr__ |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/__init__.py |
__dir__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/__init__.py |
(no function) |
|
9 |
0 |
20 |
|
100% |
| src/lexigram/auth/admin/__init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.on_admin_boot |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.get_dashboard_widgets |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.get_navigation_items |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.get_health_definitions |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.get_actions |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.get_management_pages |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor.render_widget |
|
7 |
1 |
0 |
|
86% |
| src/lexigram/auth/admin/contributor.py |
(no function) |
|
30 |
0 |
2 |
|
100% |
| src/lexigram/auth/admin/handlers/__init__.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
ActiveSessionsWidgetHandler.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
ActiveSessionsWidgetHandler.get_data |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
ActiveSessionsWidgetHandler._build_content |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
FailedLoginsWidgetHandler.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
FailedLoginsWidgetHandler.get_data |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
FailedLoginsWidgetHandler._build_content |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
TokenRefreshRateWidgetHandler.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
TokenRefreshRateWidgetHandler.get_data |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
TokenRefreshRateWidgetHandler._build_content |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/pages/__init__.py |
(no function) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/overview.py |
AuthOverviewPage.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/overview.py |
AuthOverviewPage.handle |
|
14 |
14 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/overview.py |
(no function) |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/sessions.py |
AuthSessionsPage.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/sessions.py |
AuthSessionsPage.handle |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/sessions.py |
(no function) |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/tokens.py |
AuthTokensPage.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/tokens.py |
AuthTokensPage.handle |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/tokens.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/users.py |
AuthUsersPage.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/users.py |
AuthUsersPage.handle |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/users.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/__init__.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_binding.py |
compute_binding_hash |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/authn/_binding.py |
verify_binding |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/_binding.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.current_key_id |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin._get_signing_key |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.create_access_token |
|
12 |
3 |
0 |
|
75% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.create_refresh_token |
|
10 |
3 |
0 |
|
70% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.create_token_pair |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin.create_token |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_creation.py |
(no function) |
|
21 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.keys |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.current_key_id |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin._get_verification_key |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.create_token_pair |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin._emit_action |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.refresh_token |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.refresh_with_rotation |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.verify_token |
|
62 |
11 |
0 |
|
82% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.logout |
|
9 |
2 |
0 |
|
78% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.logout_all_user_tokens |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin._is_token_blacklisted |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.refresh_access_token |
|
25 |
2 |
0 |
|
92% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin.get_user_from_token |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
(no function) |
|
31 |
0 |
18 |
|
100% |
| src/lexigram/auth/authn/_key_utils.py |
normalize_jwt_keys |
|
17 |
4 |
0 |
|
76% |
| src/lexigram/auth/authn/_key_utils.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.generate_verification_token |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.send_verification |
|
13 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.verify |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService._find_user_by_token |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.resend_verification |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/account_verification.py |
(no function) |
|
24 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyConfig.__post_init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyAuthenticator.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyAuthenticator._extract_key |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyAuthenticator._resolve_user |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyAuthenticator.authenticate |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
(no function) |
|
22 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.generate_raw_key |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.create_key |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.validate_key |
|
11 |
2 |
0 |
|
82% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.revoke_key |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager.list_keys |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.__init__ |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.attach_cache |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.attach_cache_resolver |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist._effective_cache |
|
7 |
5 |
0 |
|
29% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.revoke |
|
24 |
4 |
0 |
|
83% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.revoke_all_for_user |
|
13 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist.is_blacklisted |
|
13 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
(no function) |
|
16 |
0 |
5 |
|
100% |
| src/lexigram/auth/authn/core.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService.__init__ |
|
11 |
1 |
0 |
|
91% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService.verify_token |
|
9 |
7 |
0 |
|
22% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService.verify_id_token |
|
18 |
4 |
0 |
|
78% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService.verify_userinfo_token |
|
6 |
1 |
0 |
|
83% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService.verify_tokeninfo |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._get_jwks |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._select_jwk |
|
10 |
4 |
0 |
|
60% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._request_json |
|
8 |
5 |
0 |
|
38% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._response_json |
|
13 |
5 |
0 |
|
62% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._claims_from_payload |
|
7 |
1 |
0 |
|
86% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._timestamp_to_datetime |
|
6 |
2 |
0 |
|
67% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService._looks_like_jwt |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/google_oauth.py |
(no function) |
|
30 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.__init__ |
|
38 |
9 |
0 |
|
76% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.keys |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager._key_meta |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.current_key_id |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.set_blacklist_resolver |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.set_blacklist_cache |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.current_key_id |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.__repr__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.set_hook_registry |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.rotate_key |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager._cleanup_old_keys |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.list_keys |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager._get_signing_key |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager._get_verification_key |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager.get_user_from_token |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
(no function) |
|
37 |
0 |
8 |
|
100% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore.rotate |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore._cleanup_old_keys |
|
14 |
2 |
0 |
|
86% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore.get_signing_key |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore.get_verification_key |
|
7 |
1 |
0 |
|
86% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore.list_keys |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/key_rotation.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager.__init__ |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager.authenticate_user |
|
22 |
22 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager.get_user_info |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager.check_group_membership |
|
28 |
28 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._get_user_dn |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._get_group_dn |
|
17 |
17 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._bind_with_credentials |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._get_user_attributes |
|
18 |
18 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._get_connection |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager._return_connection |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
(no function) |
|
48 |
48 |
0 |
|
0% |
| src/lexigram/auth/authn/mfa.py |
_int_to_bytes |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
generate_totp_secret |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
_hotp |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
_normalize_base32 |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
generate_totp_code |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
verify_totp |
|
10 |
2 |
0 |
|
80% |
| src/lexigram/auth/authn/mfa.py |
get_provisioning_uri |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
generate_backup_codes |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
hash_backup_codes |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/mfa.py |
(no function) |
|
21 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2IdentityProvider.__init__ |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager.__init__ |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager.__repr__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager.get_authorization_url |
|
20 |
4 |
0 |
|
80% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager.exchange_code_for_token |
|
19 |
3 |
0 |
|
84% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager.get_user_info |
|
24 |
7 |
0 |
|
71% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider.authenticate_with_oauth2 |
|
6 |
1 |
0 |
|
83% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider._find_or_create_oauth_user |
|
20 |
1 |
0 |
|
95% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider._find_by_oauth_identity |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider._link_oauth_identity |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/authn/oauth2.py |
(no function) |
|
31 |
2 |
3 |
|
94% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.request |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.get |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.post |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.put |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.delete |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.patch |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession.head |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.status_code |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.headers |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.json |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.text |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.raise_for_status |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.close |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.__aenter__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse.__aexit__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/oauth2_session.py |
(no function) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
_PendingStore.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
_PendingStore.set |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
_PendingStore.get |
|
17 |
2 |
0 |
|
88% |
| src/lexigram/auth/authn/passkeys.py |
_PendingStore.delete |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService.__init__ |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService._gen_challenge |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService._validate_origin |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService.start_registration |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService.finish_registration |
|
39 |
12 |
0 |
|
69% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService.start_authentication |
|
10 |
1 |
0 |
|
90% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService.finish_authentication |
|
36 |
7 |
0 |
|
81% |
| src/lexigram/auth/authn/passkeys.py |
(no function) |
|
24 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.__init__ |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.derive |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.derive._derive_sync |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.verify |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.verify._verify_sync |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation.hash |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher.hash |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher.verify |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher.needs_rehash |
|
11 |
4 |
0 |
|
64% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher.rehash_if_needed |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher.hash |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher.verify |
|
5 |
2 |
0 |
|
60% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher.needs_rehash |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher.rehash_if_needed |
|
5 |
2 |
0 |
|
60% |
| src/lexigram/auth/authn/password_hasher.py |
(no function) |
|
36 |
3 |
2 |
|
92% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.generate_reset_token |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.request_reset |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.confirm_reset |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService._find_user_by_token |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.invalidate_token |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
(no function) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/relay.py |
RelayApiKeyVerifier.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/relay.py |
RelayApiKeyVerifier.authenticate |
|
18 |
1 |
0 |
|
94% |
| src/lexigram/auth/authn/relay.py |
RelayApiKeyVerifier._extract_key |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/relay.py |
_as_dict |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/relay.py |
_normalize |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/authn/relay.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/revocation.py |
PersistentTokenRevocationStore.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/revocation.py |
PersistentTokenRevocationStore._make_key |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/revocation.py |
PersistentTokenRevocationStore.revoke |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/authn/revocation.py |
PersistentTokenRevocationStore.is_revoked |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/revocation.py |
(no function) |
|
14 |
14 |
2 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapper.map_attribute |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/authn/saml.py |
EmailAttributeMapper.map_attribute |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
NameAttributeMapper.map_attribute |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
FirstNameAttributeMapper.map_attribute |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
LastNameAttributeMapper.map_attribute |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
GroupsAttributeMapper.map_attribute |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.with_defaults |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry._register_default_mappers |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.register_mapper |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.clear_mappers |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.get_mappers |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry.map_attributes |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLProvider.__init__ |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.__init__ |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager._create_saml_client |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.get_login_url |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.process_assertion |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.get_logout_url |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager.process_logout_response |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
(no function) |
|
57 |
57 |
2 |
|
0% |
| src/lexigram/auth/authn/schemas/__init__.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
RegisterRequest.validate_passwords_match |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/schemas/requests.py |
PasswordResetConfirm.validate_passwords_match |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/schemas/requests.py |
(no function) |
|
45 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/responses.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/user.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
_prehash |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
_prepare_password_bytes |
|
9 |
2 |
0 |
|
78% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.hash |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.hash._hash_sync |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.verify |
|
8 |
2 |
0 |
|
75% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.verify._verify_sync |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.needs_rehash |
|
10 |
3 |
0 |
|
70% |
| src/lexigram/auth/authn/security.py |
PasswordHasher.rehash_if_needed |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy.__init__ |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy.from_config |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy._load_common_passwords |
|
9 |
5 |
0 |
|
44% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy._get_common_passwords |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy.validate |
|
21 |
4 |
0 |
|
81% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy.is_valid |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authn/security.py |
(no function) |
|
47 |
5 |
2 |
|
89% |
| src/lexigram/auth/authn/services.py |
LockoutConfig.__post_init__ |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker.is_locked |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker.record_failure |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker.clear |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker._is_locked_cache |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker._record_failure_cache |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker._is_locked_local |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker._record_failure_local |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.__init__ |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/services.py |
AuthenticationService._emit |
|
5 |
3 |
0 |
|
40% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.set_hook_registry |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService._emit_action |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.authenticate_user |
|
26 |
2 |
0 |
|
92% |
| src/lexigram/auth/authn/services.py |
AuthenticationService._rehash_password_if_needed |
|
9 |
5 |
0 |
|
44% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.register_user |
|
13 |
2 |
0 |
|
85% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.create_token |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.verify_token |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.refresh_token |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.get_user_from_token |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/services.py |
AuthenticationService.shutdown |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/authn/services.py |
(no function) |
|
47 |
0 |
11 |
|
100% |
| src/lexigram/auth/authn/user_service.py |
UserService.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/user_service.py |
UserService._emit |
|
5 |
3 |
0 |
|
40% |
| src/lexigram/auth/authn/user_service.py |
UserService.create_user |
|
12 |
6 |
0 |
|
50% |
| src/lexigram/auth/authn/user_service.py |
UserService.get_user |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/user_service.py |
UserService.update_user |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.delete_user |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.lock_user |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.unlock_user |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.change_user_password |
|
24 |
4 |
0 |
|
83% |
| src/lexigram/auth/authn/user_service.py |
UserService.set_user_password |
|
23 |
10 |
0 |
|
57% |
| src/lexigram/auth/authn/user_service.py |
UserService.list_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.count_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
UserService.shutdown |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/authn/user_service.py |
(no function) |
|
29 |
0 |
2 |
|
100% |
| src/lexigram/auth/authz/__init__.py |
__getattr__ |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authz/__init__.py |
__dir__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/__init__.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._parse_list |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.check_access |
|
59 |
51 |
0 |
|
14% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.has_any_role |
|
14 |
14 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.has_any_permission |
|
21 |
21 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can_view |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can_create |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can_update |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can_delete |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.can_execute_action |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin.authorize |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._get_effective_roles |
|
17 |
17 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._get_user_permissions |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._has_permission |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._has_permission.matches |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin._flatten_roles |
|
22 |
22 |
0 |
|
0% |
| src/lexigram/auth/authz/_check_mixin.py |
(no function) |
|
32 |
0 |
3 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ValueParser.can_parse |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ValueParser.parse |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
StringValueParser.can_parse |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
StringValueParser.parse |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/authz/_parsers.py |
ListValueParser.can_parse |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ListValueParser.parse |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
NoneValueParser.can_parse |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_parsers.py |
NoneValueParser.parse |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/_parsers.py |
ValueParserRegistry.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ValueParserRegistry._register_default_parsers |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ValueParserRegistry.register_parser |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/_parsers.py |
ValueParserRegistry.parse |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/authz/_parsers.py |
(no function) |
|
23 |
0 |
3 |
|
100% |
| src/lexigram/auth/authz/guards.py |
_find_request |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
AuthorizationGuard.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
AuthorizationGuard.check_authorization |
|
13 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
AuthorizationGuard.get_error_message |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
RouteGuard.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
RouteGuard.check_access |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
RouteGuard.get_deny_response |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
require_auth |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
require_auth.decorator |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
require_auth.decorator.wrapper |
|
15 |
2 |
0 |
|
87% |
| src/lexigram/auth/authz/guards.py |
require_roles |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
require_permissions |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
optional_auth |
|
3 |
0 |
1 |
|
100% |
| src/lexigram/auth/authz/guards.py |
optional_auth.wrapper |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
(no function) |
|
21 |
0 |
4 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager.get_scope_permissions |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager.get_scopes_for_permissions |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager.validate_scopes |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager.expand_scope_permissions |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.__init__ |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.set_policies |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.set_roles |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.register_role |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.get_role |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.sync_from_db |
|
28 |
28 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.create_role |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.add_role_permission |
|
21 |
21 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.get_role_permissions |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.remove_role |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
AuthorizationService.invalidate_user |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/service.py |
__getattr__ |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/authz/service.py |
(no function) |
|
29 |
0 |
2 |
|
100% |
| src/lexigram/auth/cli/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/checks.py |
check_auth_service |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/checks.py |
(no function) |
|
3 |
3 |
2 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app |
|
16 |
16 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app.token_generate |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app.token_verify |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app.roles_list |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app.sessions_list |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
create_auth_app.sessions_revoke |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/commands.py |
(no function) |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.contributor_id |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_generators |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_commands |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_health_checks |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_doctor_checks |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_shell_context |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_hooks |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor.get_schema_setup |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
(no function) |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/cli/doctor.py |
check_jwt_secret |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/cli/doctor.py |
check_auth_config |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/doctor.py |
(no function) |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/generators/auth_guard.py |
AuthGuardGenerator.generate |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_guard.py |
(no function) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_policy.py |
AuthPolicyGenerator.generate |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_policy.py |
(no function) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/guard.py |
AuthGuardGenerator.generate |
|
17 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/generators/guard.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/hooks.py |
log_auth_command |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/hooks.py |
(no function) |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/cli/schema_setup.py |
ensure_oauth_identities |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/schema_setup.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/shell.py |
provide_auth |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/shell.py |
(no function) |
|
4 |
4 |
2 |
|
0% |
| src/lexigram/auth/config.py |
AuthUserConfig._handle_username |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/config.py |
JWTConfig.validate_jwt_security |
|
14 |
1 |
0 |
|
93% |
| src/lexigram/auth/config.py |
PasswordConfig.validate_cost_factors |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
AuthConfig.validate_security |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
(no function) |
|
100 |
0 |
0 |
|
100% |
| src/lexigram/auth/constants.py |
(no function) |
|
24 |
2 |
0 |
|
92% |
| src/lexigram/auth/decorators.py |
_extract_request |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/decorators.py |
require_auth |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/decorators.py |
require_auth.wrapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/decorators.py |
require_roles |
|
3 |
3 |
1 |
|
0% |
| src/lexigram/auth/decorators.py |
require_roles.decorator |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/decorators.py |
require_roles.decorator.wrapper |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/decorators.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/di/__init__.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.__init__ |
|
17 |
5 |
0 |
|
71% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.from_config |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.register |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.boot |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.shutdown |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider.health_check |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/di/bundle_provider.py |
(no function) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/provider.py |
AuthProvider.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/di/provider.py |
AuthProvider.from_config |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/provider.py |
AuthProvider.register |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/di/provider.py |
AuthProvider.boot |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/provider.py |
AuthProvider.shutdown |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/provider.py |
AuthProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/provider.py |
(no function) |
|
23 |
23 |
2 |
|
0% |
| src/lexigram/auth/di/sub_providers/__init__.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
AuthAdminProvider.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
AuthAdminProvider.register |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
AuthAdminProvider.boot |
|
7 |
2 |
0 |
|
71% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
(no function) |
|
11 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
_build_token_manager |
|
24 |
3 |
0 |
|
88% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.__init__ |
|
15 |
1 |
0 |
|
93% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.password_hasher |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.service |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.get_user |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.register |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.boot |
|
13 |
1 |
0 |
|
92% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.shutdown |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.verify_token |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.validate_session |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
(no function) |
|
34 |
0 |
6 |
|
100% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.auth_config |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.register |
|
7 |
1 |
0 |
|
86% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.boot |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.shutdown |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
(no function) |
|
19 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.service |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.register |
|
17 |
3 |
0 |
|
82% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.boot |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.shutdown |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider.health_check |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
(no function) |
|
20 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider.register |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider.boot |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider.shutdown |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider.health_check |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
(no function) |
|
15 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.__init__ |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.identity_resolver |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.register |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.boot |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.shutdown |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
(no function) |
|
20 |
0 |
4 |
|
100% |
| src/lexigram/auth/di/sub_providers/oauth_provider.py |
detect_oauth_providers_from_config |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth_provider.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider.register |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider.boot |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider.shutdown |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
(no function) |
|
15 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider.register |
|
8 |
1 |
0 |
|
88% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider.boot |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider.shutdown |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
(no function) |
|
16 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider.__init__ |
|
23 |
1 |
0 |
|
96% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider.register |
|
23 |
15 |
0 |
|
35% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider.boot |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider.shutdown |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider.health_check |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
(no function) |
|
21 |
0 |
3 |
|
100% |
| src/lexigram/auth/events.py |
(no function) |
|
49 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
InvalidCredentialsError.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
AccountLockedError.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
UserNotFoundError.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenExpiredError.__init__ |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
TokenBlacklistedError.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenInvalidError.__init__ |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
TokenAudienceError.__init__ |
|
7 |
2 |
0 |
|
71% |
| src/lexigram/auth/exceptions.py |
TokenNotFoundError.__init__ |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/exceptions.py |
TokenExpiredVerificationError.__init__ |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/exceptions.py |
AlreadyVerifiedError.__init__ |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
SessionNotFoundError.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
(no function) |
|
66 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/__init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/hooks.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/manager.py |
MFAManager.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/manager.py |
MFAManager.enable_totp |
|
15 |
1 |
0 |
|
93% |
| src/lexigram/auth/mfa/manager.py |
MFAManager.verify_totp |
|
21 |
1 |
0 |
|
95% |
| src/lexigram/auth/mfa/manager.py |
MFAManager.disable_totp |
|
10 |
1 |
0 |
|
90% |
| src/lexigram/auth/mfa/manager.py |
MFAManager.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/mfa/manager.py |
(no function) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/mfa/totp_vectors.py |
TOTPTestVectors.get_all |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/mfa/totp_vectors.py |
TOTPTestVectors.get_by_algorithm |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/mfa/totp_vectors.py |
TOTPTestVectors.get_by_digits |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/mfa/totp_vectors.py |
generate_test_vector |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/mfa/totp_vectors.py |
(no function) |
|
27 |
27 |
0 |
|
0% |
| src/lexigram/auth/models/__init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/apikey.py |
APIKey.is_active |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/apikey.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/mfa.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/session.py |
UserSession.is_expired |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/models/session.py |
UserSession.is_valid |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/models/session.py |
UserSession.remaining_ttl |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/models/session.py |
UserSession.refresh |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/session.py |
(no function) |
|
25 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/token.py |
(no function) |
|
14 |
0 |
2 |
|
100% |
| src/lexigram/auth/models/user.py |
User.has_role |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/user.py |
User.has_permission |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/user.py |
User.with_role |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/models/user.py |
User.without_role |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/user.py |
User.with_permission |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/user.py |
User.without_permission |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/user.py |
User.record_login |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/user.py |
User.to_public_dict |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/models/user.py |
User.from_dict |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/user.py |
(no function) |
|
40 |
0 |
0 |
|
100% |
| src/lexigram/auth/module.py |
AuthModule.configure |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/module.py |
AuthModule.stub |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/module.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/__init__.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcher.can_match |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcher.matches |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/engine.py |
ExactPatternMatcher.can_match |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
ExactPatternMatcher.matches |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
WildcardPatternMatcher.can_match |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
WildcardPatternMatcher.matches |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
GlobPatternMatcher.can_match |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
GlobPatternMatcher.matches |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry.with_defaults |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry._register_default_matchers |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry.register_matcher |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry.matches |
|
6 |
1 |
0 |
|
83% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine.__init__ |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine._rebuild_resource_index |
|
14 |
1 |
0 |
|
93% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine.load_from_store |
|
7 |
5 |
0 |
|
29% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine.save_policy |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine.evaluate |
|
41 |
14 |
0 |
|
66% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine._matches |
|
10 |
2 |
0 |
|
80% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine._pattern_match |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
(no function) |
|
37 |
0 |
5 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
OperatorHandlerProtocol.compare |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
EqualsOperator.compare |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotEqualsOperator.compare |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ContainsOperator.compare |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotContainsOperator.compare |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
InOperator.compare |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotInOperator.compare |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
MatchesOperator.compare |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
GreaterThanOperator.compare |
|
4 |
2 |
0 |
|
50% |
| src/lexigram/auth/policies/evaluator.py |
LessThanOperator.compare |
|
4 |
2 |
0 |
|
50% |
| src/lexigram/auth/policies/evaluator.py |
GreaterThanOrEqualsOperator.compare |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
LessThanOrEqualsOperator.compare |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry.with_defaults |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry._register_default_handlers |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry.register_handler |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry.compare |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator._compile_path |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator._compile_path.accessor |
|
10 |
4 |
0 |
|
60% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator.evaluate |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator._resolve_attribute |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
(no function) |
|
42 |
0 |
5 |
|
100% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.get_all |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.get_by_id |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.get_by_name |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.save |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.delete |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.exists |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore.clear |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
(no function) |
|
12 |
0 |
2 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.get_all |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.get_by_id |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.get_by_name |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.save |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.delete |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol.exists |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyLoader.load |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyLoader.reload |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/store.py |
(no function) |
|
15 |
0 |
12 |
|
100% |
| src/lexigram/auth/policies/types.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| src/lexigram/auth/protocols.py |
TokenValidatorProtocol.validate |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/protocols.py |
TokenValidatorProtocol.revoke |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/protocols.py |
IdentityResolverProtocol.resolve |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/protocols.py |
(no function) |
|
9 |
9 |
6 |
|
0% |
| src/lexigram/auth/services/__init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker.__init__ |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker.record_failed_login |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker.record_refresh |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker.failed_login_summary |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker.refresh_summary |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker._prune |
|
8 |
2 |
0 |
|
75% |
| src/lexigram/auth/services/activity_tracker.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.validate_password |
|
15 |
3 |
0 |
|
80% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.verify_credentials |
|
12 |
4 |
0 |
|
67% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.get_cached_token |
|
14 |
14 |
0 |
|
0% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.cache_token |
|
11 |
6 |
0 |
|
45% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern.invalidate_token |
|
11 |
6 |
0 |
|
45% |
| src/lexigram/auth/services/result_pattern_service.py |
(no function) |
|
15 |
0 |
4 |
|
100% |
| src/lexigram/auth/session/__init__.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
SessionCookieBackend.__init__ |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
SessionCookieBackend.authenticate |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
SessionCookieBackend.login |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
SessionCookieBackend.logout |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
(no function) |
|
16 |
0 |
1 |
|
100% |
| src/lexigram/auth/session/fingerprint.py |
generate_device_id |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/fingerprint.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.__init__ |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.__repr__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.create_session |
|
15 |
1 |
0 |
|
93% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.validate_session |
|
17 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl._prune_activity_write_cache |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.revoke_session |
|
14 |
7 |
0 |
|
50% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.verify_mfa |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.revoke_all_sessions |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl.get_active_sessions |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl._generate_fallback_id |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
(no function) |
|
31 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/__init__.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore._col |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore._ensure_collection |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore._user_from_doc |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore._doc_from_user |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.create_user |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.get_user_by_id |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.get_user_by_email |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.update_user |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.delete_user |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.list_users |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.count_users |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.get_credentials |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore.update_credentials |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/_mongo_store.py |
(no function) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore._ensure_tables |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore._user_from_row |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore._user_from_row.safe_load |
|
8 |
3 |
0 |
|
62% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore._credentials_from_row |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore._credentials_from_row.safe_load |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.create_user |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.get_user_by_id |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.get_user_by_email |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.update_user |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.delete_user |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.list_users |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.count_users |
|
10 |
3 |
0 |
|
70% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.get_credentials |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.update_credentials |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore.update_credentials.safe_load |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/_sql_store.py |
(no function) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.insert |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.find_by_prefix |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.update_last_used |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.revoke |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository.find_by_user |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
(no function) |
|
13 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.__init__ |
|
6 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.subscribe_to_invalidations |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore._handle_invalidation |
|
11 |
1 |
0 |
|
91% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.get_user_by_id |
|
18 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.get_user_by_email |
|
18 |
18 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.update_user |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.delete_user |
|
11 |
2 |
0 |
|
82% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.create_user |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.list_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.count_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.get_credentials |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore.update_credentials |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore._serialize_user |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore._deserialize_user |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore._deserialize_user.parse_dt |
|
8 |
3 |
0 |
|
62% |
| src/lexigram/auth/storage/cached_user_store.py |
(no function) |
|
23 |
0 |
4 |
|
100% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.__init__ |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore._user_key |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore._user_from_data |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore._user_from_data.parse_dt |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore._data_from_user |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.create_user |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.get_user_by_id |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.get_user_by_email |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.update_user |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.delete_user |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.list_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.count_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.get_credentials |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore.update_credentials |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
(no function) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.create |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.get |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.update |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.delete |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.delete_all_for_user |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore.list_for_user |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemoryMFAStore.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemoryMFAStore.get |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemoryMFAStore.save |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemoryMFAStore.delete |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
(no function) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/__init__.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.__init__ |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore._ensure_collection |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore._identity_from_doc |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore._doc_from_identity |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.create_oauth_identity |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.get_oauth_identity |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.get_oauth_identities_for_user |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.delete_oauth_identity |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.delete_oauth_identities_for_user |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.get_user_by_oauth_identity |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.resolve_user_id |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore.resolve_user_id_sync |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
(no function) |
|
21 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.create_oauth_identity |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.get_oauth_identity |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.get_oauth_identities_for_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.delete_oauth_identity |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.delete_oauth_identities_for_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.get_user_by_oauth_identity |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore.resolve_user_id |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentity.__init__ |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
(no function) |
|
14 |
0 |
8 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore._ensure_tables |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore._identity_from_row |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.create_oauth_identity |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.get_oauth_identity |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.get_oauth_identities_for_user |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.delete_oauth_identity |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.delete_oauth_identities_for_user |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.get_user_by_oauth_identity |
|
7 |
7 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.resolve_user_id |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore.resolve_user_id_sync |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
(no function) |
|
20 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.create |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.get |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.update |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.delete |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.delete_all_for_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore.list_for_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
MFAStore.get |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
MFAStore.save |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
MFAStore.delete |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
(no function) |
|
16 |
0 |
13 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
CachedUserStore.get_user_by_id |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
CachedUserStore.create_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
CachedUserStore.update_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
CachedUserStore.delete_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.create_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.get_user_by_id |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.get_user_by_email |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.update_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.delete_user |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.list_users |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.count_users |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.get_credentials |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol.update_credentials |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.create_user |
|
12 |
2 |
0 |
|
83% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.get_user_by_id |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.get_user_by_email |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.get_user_by_username |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.update_user |
|
7 |
1 |
0 |
|
86% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.delete_user |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.list_users |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.count_users |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.get_credentials |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore.update_credentials |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/storage/token_store.py |
(no function) |
|
34 |
0 |
15 |
|
100% |
| src/lexigram/auth/types.py |
OAuth2UserInfo.__post_init__ |
|
2 |
1 |
0 |
|
50% |
| src/lexigram/auth/types.py |
(no function) |
|
65 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/__init__.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
_get_request_resolver |
|
8 |
2 |
0 |
|
75% |
| src/lexigram/auth/web/guards.py |
_get_request_context_user_id |
|
11 |
3 |
0 |
|
73% |
| src/lexigram/auth/web/guards.py |
_GuardBase.can_activate |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
_GuardBase.handle_rejection |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
AuthGuard.can_activate |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
AuthGuard.handle_rejection |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
RoleGuard.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
RoleGuard.can_activate |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
PermissionGuard.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
PermissionGuard.can_activate |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
CompositeGuard.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
CompositeGuard.can_activate |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
AdminGuard.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
use_guards |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
use_guards.decorator |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
use_guards.decorator.wrapper |
|
18 |
4 |
0 |
|
78% |
| src/lexigram/auth/web/guards.py |
GuardFactory.get_guard |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_auth |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_auth.decorator |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_auth.decorator.wrapper |
|
17 |
17 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_admin |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_admin.decorator |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_admin.decorator.wrapper |
|
17 |
17 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_role |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
require_permission |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
(no function) |
|
41 |
0 |
3 |
|
100% |
| src/lexigram/auth/web/middleware/__init__.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/api_key_authenticator.py |
ApiKeyAuthenticator.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/api_key_authenticator.py |
ApiKeyAuthenticator.authenticate |
|
13 |
11 |
0 |
|
15% |
| src/lexigram/auth/web/middleware/api_key_authenticator.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.__init__ |
|
16 |
1 |
0 |
|
94% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.should_skip_auth |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.extract_token |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.authenticate_request |
|
29 |
12 |
0 |
|
59% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.check_authorization |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.__call__ |
|
42 |
42 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.__call__.next_app |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.__call__.send_wrapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware.set_app |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter.__init__ |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter.require_auth |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter.require_auth.decorator |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter.require_auth.decorator.wrapper |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter.get_current_user |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
_extract_request |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
_get_auth_provider |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
_get_response_factory |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
require_mfa |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
require_mfa.decorator |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
require_mfa.decorator.wrapper |
|
24 |
24 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
(no function) |
|
35 |
0 |
6 |
|
100% |
| src/lexigram/auth/web/middleware/jwt_authenticator.py |
JwtAuthenticator.__init__ |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/jwt_authenticator.py |
JwtAuthenticator.authenticate |
|
21 |
8 |
0 |
|
62% |
| src/lexigram/auth/web/middleware/jwt_authenticator.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/response_handler.py |
AuthResponseHandler.unauthorized_response |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/response_handler.py |
AuthResponseHandler.forbidden_response |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/response_handler.py |
_get_response_factory |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/response_handler.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/session_authenticator.py |
SessionAuthenticator.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/session_authenticator.py |
SessionAuthenticator.authenticate |
|
13 |
10 |
0 |
|
23% |
| src/lexigram/auth/web/middleware/session_authenticator.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/session_validator.py |
SessionValidator.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/session_validator.py |
SessionValidator.check_authorization |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/session_validator.py |
SessionValidator.should_skip_auth |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/session_validator.py |
(no function) |
|
7 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitExceededError.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/throttle.py |
_parse_rate_limit |
|
10 |
3 |
0 |
|
70% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitMiddleware.__init__ |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitMiddleware.__call__ |
|
29 |
8 |
0 |
|
72% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitMiddleware.__call__.intercepting_send |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitMiddleware._send_429 |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/throttle.py |
throttle |
|
2 |
2 |
1 |
|
0% |
| src/lexigram/auth/web/middleware/throttle.py |
throttle.decorator |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/throttle.py |
(no function) |
|
17 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.__init__ |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache._cleanup_expired |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache._evict_if_needed |
|
2 |
1 |
0 |
|
50% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.get |
|
21 |
8 |
0 |
|
62% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.set |
|
9 |
1 |
0 |
|
89% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.invalidate |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.clear |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache.stats |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/token_cache.py |
(no function) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/middleware/token_extractor.py |
TokenExtractor.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/token_extractor.py |
TokenExtractor.extract_token |
|
23 |
16 |
0 |
|
30% |
| src/lexigram/auth/web/middleware/token_extractor.py |
(no function) |
|
9 |
0 |
2 |
|
100% |