| src/lexigram/auth/__init__.py |
(no class) |
|
18 |
1 |
20 |
|
94% |
| src/lexigram/auth/admin/__init__.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/contributor.py |
AuthAdminContributor |
|
20 |
9 |
0 |
|
55% |
| src/lexigram/auth/admin/contributor.py |
(no class) |
|
30 |
0 |
2 |
|
100% |
| src/lexigram/auth/admin/handlers/__init__.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
ActiveSessionsWidgetHandler |
|
10 |
1 |
0 |
|
90% |
| src/lexigram/auth/admin/handlers/active_sessions.py |
(no class) |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
FailedLoginsWidgetHandler |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/failed_logins.py |
(no class) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
TokenRefreshRateWidgetHandler |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/handlers/token_refresh_rate.py |
(no class) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/admin/pages/__init__.py |
(no class) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/overview.py |
AuthOverviewPage |
|
16 |
16 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/overview.py |
(no class) |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/sessions.py |
AuthSessionsPage |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/sessions.py |
(no class) |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/tokens.py |
AuthTokensPage |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/tokens.py |
(no class) |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/users.py |
AuthUsersPage |
|
12 |
12 |
0 |
|
0% |
| src/lexigram/auth/admin/pages/users.py |
(no class) |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/__init__.py |
(no class) |
|
17 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_binding.py |
TokenBindingConfig |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/_binding.py |
(no class) |
|
26 |
15 |
0 |
|
42% |
| src/lexigram/auth/authn/_jwt_creation.py |
_JWTCreationMixin |
|
30 |
6 |
4 |
|
80% |
| src/lexigram/auth/authn/_jwt_creation.py |
(no class) |
|
21 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
_JWTLifecycleMixin |
|
122 |
25 |
8 |
|
80% |
| src/lexigram/auth/authn/_jwt_lifecycle.py |
(no class) |
|
31 |
0 |
18 |
|
100% |
| src/lexigram/auth/authn/_key_utils.py |
(no class) |
|
22 |
4 |
0 |
|
82% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/account_verification.py |
AccountVerificationService |
|
43 |
19 |
0 |
|
56% |
| src/lexigram/auth/authn/account_verification.py |
(no class) |
|
24 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyConfig |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
APIKeyAuthenticator |
|
27 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/api_key.py |
(no class) |
|
22 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/apikeys.py |
APIKeyManager |
|
32 |
2 |
0 |
|
94% |
| src/lexigram/auth/authn/apikeys.py |
(no class) |
|
21 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/blacklist.py |
JWTBlacklist |
|
68 |
11 |
0 |
|
84% |
| src/lexigram/auth/authn/blacklist.py |
(no class) |
|
16 |
0 |
5 |
|
100% |
| src/lexigram/auth/authn/core.py |
(no class) |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/google_oauth.py |
GoogleOAuthService |
|
107 |
48 |
0 |
|
55% |
| src/lexigram/auth/authn/google_oauth.py |
(no class) |
|
30 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/jwt.py |
JWTTokenManager |
|
55 |
11 |
0 |
|
80% |
| src/lexigram/auth/authn/jwt.py |
(no class) |
|
37 |
0 |
8 |
|
100% |
| src/lexigram/auth/authn/key_rotation.py |
JWTKeyStore |
|
36 |
4 |
0 |
|
89% |
| src/lexigram/auth/authn/key_rotation.py |
(no class) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/ldap.py |
LDAPProvider |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/ldap.py |
LDAPManager |
|
141 |
141 |
0 |
|
0% |
| src/lexigram/auth/authn/ldap.py |
(no class) |
|
48 |
48 |
0 |
|
0% |
| src/lexigram/auth/authn/mfa.py |
(no class) |
|
61 |
2 |
2 |
|
97% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2IdentityProvider |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2Manager |
|
69 |
14 |
0 |
|
80% |
| src/lexigram/auth/authn/oauth2.py |
OAuth2AuthProvider |
|
39 |
3 |
0 |
|
92% |
| src/lexigram/auth/authn/oauth2.py |
(no class) |
|
31 |
2 |
3 |
|
94% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectSession |
|
40 |
33 |
0 |
|
18% |
| src/lexigram/auth/authn/oauth2_session.py |
LexigramConnectResponse |
|
15 |
5 |
0 |
|
67% |
| src/lexigram/auth/authn/oauth2_session.py |
(no class) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/passkeys.py |
_PendingStore |
|
27 |
2 |
0 |
|
93% |
| src/lexigram/auth/authn/passkeys.py |
PasskeyService |
|
101 |
20 |
0 |
|
80% |
| src/lexigram/auth/authn/passkeys.py |
(no class) |
|
24 |
0 |
3 |
|
100% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idKeyDerivation |
|
14 |
9 |
0 |
|
36% |
| src/lexigram/auth/authn/password_hasher.py |
Argon2idPasswordHasher |
|
19 |
10 |
0 |
|
47% |
| src/lexigram/auth/authn/password_hasher.py |
ComposedPasswordHasher |
|
18 |
5 |
0 |
|
72% |
| src/lexigram/auth/authn/password_hasher.py |
(no class) |
|
36 |
3 |
2 |
|
92% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetTokenError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/password_reset.py |
PasswordResetService |
|
36 |
36 |
0 |
|
0% |
| src/lexigram/auth/authn/password_reset.py |
(no class) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/authn/relay.py |
RelayApiKeyVerifier |
|
31 |
1 |
0 |
|
97% |
| src/lexigram/auth/authn/relay.py |
(no class) |
|
23 |
1 |
0 |
|
96% |
| src/lexigram/auth/authn/revocation.py |
PersistentTokenRevocationStore |
|
18 |
18 |
0 |
|
0% |
| src/lexigram/auth/authn/revocation.py |
(no class) |
|
14 |
14 |
2 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapper |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/authn/saml.py |
EmailAttributeMapper |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
NameAttributeMapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
FirstNameAttributeMapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
LastNameAttributeMapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
GroupsAttributeMapper |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLAttributeMapperRegistry |
|
16 |
16 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLProvider |
|
10 |
10 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
SAMLManager |
|
47 |
47 |
0 |
|
0% |
| src/lexigram/auth/authn/saml.py |
(no class) |
|
57 |
57 |
2 |
|
0% |
| src/lexigram/auth/authn/schemas/__init__.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
LoginRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
RegisterRequest |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/schemas/requests.py |
RefreshTokenRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
PasswordResetRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
PasswordResetConfirm |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authn/schemas/requests.py |
OAuth2AuthorizeRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
OAuth2TokenRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/requests.py |
(no class) |
|
45 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/responses.py |
TokenResponse |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/responses.py |
(no class) |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/user.py |
UserProfile |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/schemas/user.py |
(no class) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/security.py |
PasswordHasher |
|
38 |
7 |
0 |
|
82% |
| src/lexigram/auth/authn/security.py |
PasswordPolicy |
|
51 |
14 |
0 |
|
73% |
| src/lexigram/auth/authn/security.py |
(no class) |
|
57 |
7 |
2 |
|
88% |
| src/lexigram/auth/authn/services.py |
LockoutConfig |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
LoginAttemptTracker |
|
40 |
0 |
0 |
|
100% |
| src/lexigram/auth/authn/services.py |
AuthenticationService |
|
86 |
29 |
0 |
|
66% |
| src/lexigram/auth/authn/services.py |
(no class) |
|
47 |
0 |
11 |
|
100% |
| src/lexigram/auth/authn/user_service.py |
UserService |
|
106 |
60 |
0 |
|
43% |
| src/lexigram/auth/authn/user_service.py |
(no class) |
|
29 |
0 |
2 |
|
100% |
| src/lexigram/auth/authz/__init__.py |
(no class) |
|
12 |
4 |
0 |
|
67% |
| src/lexigram/auth/authz/_check_mixin.py |
_AuthCheckMixin |
|
176 |
162 |
0 |
|
8% |
| src/lexigram/auth/authz/_check_mixin.py |
(no class) |
|
32 |
0 |
3 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
ValueParser |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
StringValueParser |
|
6 |
5 |
0 |
|
17% |
| src/lexigram/auth/authz/_parsers.py |
ListValueParser |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/_parsers.py |
NoneValueParser |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/authz/_parsers.py |
ValueParserRegistry |
|
11 |
3 |
0 |
|
73% |
| src/lexigram/auth/authz/_parsers.py |
(no class) |
|
23 |
0 |
3 |
|
100% |
| src/lexigram/auth/authz/guards.py |
AuthorizationGuard |
|
22 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
RouteGuard |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/guards.py |
(no class) |
|
52 |
2 |
5 |
|
96% |
| src/lexigram/auth/authz/scopes.py |
OAuthScope |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
ScopeManager |
|
19 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/scopes.py |
(no class) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/service.py |
UserProtocol |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/authz/service.py |
AuthorizationService |
|
84 |
73 |
0 |
|
13% |
| src/lexigram/auth/authz/service.py |
(no class) |
|
32 |
1 |
2 |
|
97% |
| src/lexigram/auth/cli/__init__.py |
(no class) |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/checks.py |
(no class) |
|
4 |
4 |
2 |
|
0% |
| src/lexigram/auth/cli/commands.py |
(no class) |
|
24 |
24 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
AuthCliContributor |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/cli/contributor.py |
(no class) |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/cli/doctor.py |
(no class) |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/__init__.py |
(no class) |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/generators/auth_guard.py |
AuthGuardGenerator |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_guard.py |
(no class) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_policy.py |
AuthPolicyGenerator |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/auth_policy.py |
(no class) |
|
6 |
6 |
0 |
|
0% |
| src/lexigram/auth/cli/generators/guard.py |
AuthGuardGenerator |
|
17 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/generators/guard.py |
(no class) |
|
9 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/hooks.py |
(no class) |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/cli/schema_setup.py |
(no class) |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/cli/shell.py |
(no class) |
|
5 |
5 |
2 |
|
0% |
| src/lexigram/auth/config.py |
AuthUserConfig |
|
3 |
1 |
0 |
|
67% |
| src/lexigram/auth/config.py |
AuthRoleConfig |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
RBACConfig |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
JWTConfig |
|
14 |
1 |
0 |
|
93% |
| src/lexigram/auth/config.py |
PasswordConfig |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
AuthMiddlewareConfig |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
AuthConfig |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/config.py |
(no class) |
|
100 |
0 |
0 |
|
100% |
| src/lexigram/auth/constants.py |
(no class) |
|
24 |
2 |
0 |
|
92% |
| src/lexigram/auth/decorators.py |
(no class) |
|
34 |
34 |
1 |
|
0% |
| src/lexigram/auth/di/__init__.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/bundle_provider.py |
AuthBundleProvider |
|
30 |
9 |
0 |
|
70% |
| src/lexigram/auth/di/bundle_provider.py |
(no class) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/provider.py |
AuthProvider |
|
15 |
15 |
0 |
|
0% |
| src/lexigram/auth/di/provider.py |
(no class) |
|
23 |
23 |
2 |
|
0% |
| src/lexigram/auth/di/sub_providers/__init__.py |
(no class) |
|
11 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
AuthAdminProvider |
|
19 |
2 |
0 |
|
89% |
| src/lexigram/auth/di/sub_providers/admin_provider.py |
(no class) |
|
11 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
AuthenticationProvider |
|
53 |
8 |
0 |
|
85% |
| src/lexigram/auth/di/sub_providers/authentication_provider.py |
(no class) |
|
58 |
3 |
6 |
|
95% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
AuthorizationProvider |
|
14 |
2 |
0 |
|
86% |
| src/lexigram/auth/di/sub_providers/authorization_provider.py |
(no class) |
|
19 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
GoogleOAuthProvider |
|
26 |
8 |
0 |
|
69% |
| src/lexigram/auth/di/sub_providers/google_oauth_provider.py |
(no class) |
|
20 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
MFAProvider |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/di/sub_providers/mfa_provider.py |
(no class) |
|
15 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
OAuth2Provider |
|
16 |
16 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/oauth2_provider.py |
(no class) |
|
20 |
0 |
4 |
|
100% |
| src/lexigram/auth/di/sub_providers/oauth_provider.py |
(no class) |
|
4 |
1 |
0 |
|
75% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
PasskeyProvider |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/di/sub_providers/passkey_provider.py |
(no class) |
|
15 |
0 |
2 |
|
100% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
SessionProvider |
|
13 |
2 |
0 |
|
85% |
| src/lexigram/auth/di/sub_providers/session_provider.py |
(no class) |
|
16 |
0 |
3 |
|
100% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
TokenProvider |
|
51 |
17 |
0 |
|
67% |
| src/lexigram/auth/di/sub_providers/token_provider.py |
(no class) |
|
21 |
0 |
3 |
|
100% |
| src/lexigram/auth/events.py |
UserAuthenticated |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
AuthenticationFailed |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
UserRegistered |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
PasswordChanged |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
SessionCreated |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
SessionRevoked |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
UserLoggedIn |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
UserLoginFailed |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
UserLockedOut |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
UserLoggedOut |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
TokenRevoked |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/events.py |
(no class) |
|
49 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
AuthError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
AuthenticationError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
AuthorizationError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
InvalidCredentialsError |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
AccountLockedError |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
UserNotFoundError |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
InvalidTokenError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenExpiredError |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
TokenBlacklistedError |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenInvalidError |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
TokenAudienceError |
|
7 |
2 |
0 |
|
71% |
| src/lexigram/auth/exceptions.py |
TokenNotFoundError |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/exceptions.py |
InvalidAudienceError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
InvalidScopeError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
BlacklistedTokenError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
TokenExpiredVerificationError |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/exceptions.py |
AlreadyVerifiedError |
|
5 |
1 |
0 |
|
80% |
| src/lexigram/auth/exceptions.py |
EmailExistsError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
UsernameExistsError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
PasswordPolicyError |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
OAuth2Error |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
SessionNotFoundError |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/exceptions.py |
(no class) |
|
66 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
AuthUserAuthenticatedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
AuthAuthenticationFailedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
AuthTokenIssuedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
AuthTokenRevokedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
AuthTokenRefreshedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/hooks.py |
(no class) |
|
23 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/__init__.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/hooks.py |
MFAChallengeIssuedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/hooks.py |
MFAVerifiedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/hooks.py |
MFAFailedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/hooks.py |
(no class) |
|
16 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/manager.py |
MFAManager |
|
48 |
4 |
0 |
|
92% |
| src/lexigram/auth/mfa/manager.py |
(no class) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/mfa/totp_vectors.py |
TOTPTestVector |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/mfa/totp_vectors.py |
TOTPTestVectors |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/mfa/totp_vectors.py |
(no class) |
|
28 |
28 |
0 |
|
0% |
| src/lexigram/auth/models/__init__.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/apikey.py |
APIKey |
|
3 |
3 |
0 |
|
0% |
| src/lexigram/auth/models/apikey.py |
(no class) |
|
19 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/mfa.py |
UserMFA |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/mfa.py |
(no class) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/session.py |
UserSession |
|
13 |
10 |
0 |
|
23% |
| src/lexigram/auth/models/session.py |
(no class) |
|
25 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/token.py |
AuthToken |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/token.py |
(no class) |
|
14 |
0 |
2 |
|
100% |
| src/lexigram/auth/models/user.py |
UserCredentials |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/models/user.py |
User |
|
19 |
14 |
0 |
|
26% |
| src/lexigram/auth/models/user.py |
(no class) |
|
40 |
0 |
0 |
|
100% |
| src/lexigram/auth/module.py |
AuthModule |
|
9 |
3 |
0 |
|
67% |
| src/lexigram/auth/module.py |
(no class) |
|
12 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/__init__.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
PatternMatcher |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/policies/engine.py |
ExactPatternMatcher |
|
2 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
WildcardPatternMatcher |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/engine.py |
GlobPatternMatcher |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/engine.py |
PatternMatcherRegistry |
|
14 |
3 |
0 |
|
79% |
| src/lexigram/auth/policies/engine.py |
PolicyEngine |
|
94 |
30 |
0 |
|
68% |
| src/lexigram/auth/policies/engine.py |
(no class) |
|
37 |
0 |
5 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
OperatorHandlerProtocol |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
EqualsOperator |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotEqualsOperator |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
ContainsOperator |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotContainsOperator |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
InOperator |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
NotInOperator |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
MatchesOperator |
|
1 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/evaluator.py |
GreaterThanOperator |
|
4 |
2 |
0 |
|
50% |
| src/lexigram/auth/policies/evaluator.py |
LessThanOperator |
|
4 |
2 |
0 |
|
50% |
| src/lexigram/auth/policies/evaluator.py |
GreaterThanOrEqualsOperator |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
LessThanOrEqualsOperator |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/policies/evaluator.py |
OperatorRegistry |
|
13 |
2 |
0 |
|
85% |
| src/lexigram/auth/policies/evaluator.py |
ConditionEvaluator |
|
26 |
4 |
0 |
|
85% |
| src/lexigram/auth/policies/evaluator.py |
(no class) |
|
42 |
0 |
5 |
|
100% |
| src/lexigram/auth/policies/in_memory_store.py |
InMemoryPolicyStore |
|
14 |
14 |
0 |
|
0% |
| src/lexigram/auth/policies/in_memory_store.py |
(no class) |
|
12 |
0 |
2 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyStoreProtocol |
|
0 |
0 |
6 |
|
100% |
| src/lexigram/auth/policies/store.py |
PolicyLoader |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/policies/store.py |
(no class) |
|
15 |
0 |
12 |
|
100% |
| src/lexigram/auth/policies/types.py |
PolicyEffect |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
DecisionOutcome |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
Condition |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
Policy |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
AuthorizationRequest |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
AuthorizationDecision |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/policies/types.py |
(no class) |
|
39 |
0 |
0 |
|
100% |
| src/lexigram/auth/protocols.py |
TokenValidatorProtocol |
|
0 |
0 |
2 |
|
100% |
| src/lexigram/auth/protocols.py |
IdentityResolverProtocol |
|
0 |
0 |
1 |
|
100% |
| src/lexigram/auth/protocols.py |
(no class) |
|
9 |
9 |
6 |
|
0% |
| src/lexigram/auth/services/__init__.py |
(no class) |
|
4 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/activity_tracker.py |
AuthActivityTracker |
|
29 |
2 |
0 |
|
93% |
| src/lexigram/auth/services/activity_tracker.py |
(no class) |
|
14 |
0 |
0 |
|
100% |
| src/lexigram/auth/services/result_pattern_service.py |
AuthServiceWithResultPattern |
|
65 |
33 |
0 |
|
49% |
| src/lexigram/auth/services/result_pattern_service.py |
(no class) |
|
15 |
0 |
4 |
|
100% |
| src/lexigram/auth/session/__init__.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
SessionCookieBackend |
|
33 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/cookie_backend.py |
(no class) |
|
16 |
0 |
1 |
|
100% |
| src/lexigram/auth/session/fingerprint.py |
(no class) |
|
8 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
SessionCreatedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
SessionRefreshedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
SessionExpiredHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
SessionRevokedHook |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/hooks.py |
(no class) |
|
20 |
0 |
0 |
|
100% |
| src/lexigram/auth/session/manager.py |
SessionManagerImpl |
|
67 |
16 |
0 |
|
76% |
| src/lexigram/auth/session/manager.py |
(no class) |
|
31 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/__init__.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/_mongo_store.py |
MongoDBUserStore |
|
52 |
9 |
0 |
|
83% |
| src/lexigram/auth/storage/_mongo_store.py |
(no class) |
|
24 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/_sql_store.py |
SQLUserStore |
|
83 |
35 |
0 |
|
58% |
| src/lexigram/auth/storage/_sql_store.py |
(no class) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/apikey_sql.py |
APIKeySqlRepository |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/storage/apikey_sql.py |
(no class) |
|
13 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/cached_user_store.py |
CachedUserStore |
|
99 |
33 |
0 |
|
67% |
| src/lexigram/auth/storage/cached_user_store.py |
(no class) |
|
23 |
0 |
4 |
|
100% |
| src/lexigram/auth/storage/db_stores.py |
RedisUserStore |
|
70 |
70 |
0 |
|
0% |
| src/lexigram/auth/storage/db_stores.py |
(no class) |
|
25 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemorySessionStore |
|
18 |
8 |
0 |
|
56% |
| src/lexigram/auth/storage/in_memory_stores.py |
InMemoryMFAStore |
|
9 |
9 |
0 |
|
0% |
| src/lexigram/auth/storage/in_memory_stores.py |
(no class) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/__init__.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
MongoDBOAuthIdentityStore |
|
60 |
60 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_mongodb.py |
(no class) |
|
21 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentityStore |
|
0 |
0 |
7 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
OAuthIdentity |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/storage/oauth_identity_store/_protocol.py |
(no class) |
|
14 |
0 |
8 |
|
100% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
SQLAlchemyOAuthIdentityStore |
|
78 |
66 |
0 |
|
15% |
| src/lexigram/auth/storage/oauth_identity_store/_sqlalchemy.py |
(no class) |
|
20 |
0 |
2 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
SessionStore |
|
0 |
0 |
6 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
MFAStore |
|
0 |
0 |
3 |
|
100% |
| src/lexigram/auth/storage/session_store.py |
(no class) |
|
16 |
0 |
13 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
CachedUserStore |
|
0 |
0 |
4 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
UserStoreProtocol |
|
0 |
0 |
9 |
|
100% |
| src/lexigram/auth/storage/token_store.py |
InMemoryUserStore |
|
43 |
9 |
0 |
|
79% |
| src/lexigram/auth/storage/token_store.py |
(no class) |
|
34 |
0 |
15 |
|
100% |
| src/lexigram/auth/types.py |
AuthStatus |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
TokenType |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
UserStatus |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
GuardContext |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
AuthResult |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
OAuth2UserInfo |
|
2 |
1 |
0 |
|
50% |
| src/lexigram/auth/types.py |
AuthHealthResult |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
TokenPair |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/types.py |
(no class) |
|
65 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/__init__.py |
(no class) |
|
5 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
_GuardBase |
|
8 |
8 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
AuthGuard |
|
9 |
8 |
0 |
|
11% |
| src/lexigram/auth/web/guards.py |
RoleGuard |
|
4 |
4 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
PermissionGuard |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
CompositeGuard |
|
5 |
5 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
AdminGuard |
|
1 |
1 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
UserGuard |
|
0 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/guards.py |
GuardFactory |
|
11 |
11 |
0 |
|
0% |
| src/lexigram/auth/web/guards.py |
(no class) |
|
132 |
57 |
3 |
|
57% |
| src/lexigram/auth/web/middleware/__init__.py |
(no class) |
|
3 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/api_key_authenticator.py |
ApiKeyAuthenticator |
|
14 |
11 |
0 |
|
21% |
| src/lexigram/auth/web/middleware/api_key_authenticator.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/auth.py |
AuthMiddleware |
|
96 |
63 |
0 |
|
34% |
| src/lexigram/auth/web/middleware/auth.py |
AuthRouter |
|
22 |
22 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/auth.py |
(no class) |
|
80 |
45 |
6 |
|
44% |
| src/lexigram/auth/web/middleware/jwt_authenticator.py |
JwtAuthenticator |
|
28 |
8 |
0 |
|
71% |
| src/lexigram/auth/web/middleware/jwt_authenticator.py |
(no class) |
|
10 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/response_handler.py |
AuthResponseHandler |
|
13 |
13 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/response_handler.py |
(no class) |
|
16 |
6 |
0 |
|
62% |
| src/lexigram/auth/web/middleware/session_authenticator.py |
SessionAuthenticator |
|
14 |
10 |
0 |
|
29% |
| src/lexigram/auth/web/middleware/session_authenticator.py |
(no class) |
|
7 |
0 |
0 |
|
100% |
| src/lexigram/auth/web/middleware/session_validator.py |
SessionValidator |
|
10 |
8 |
0 |
|
20% |
| src/lexigram/auth/web/middleware/session_validator.py |
(no class) |
|
7 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitExceededError |
|
2 |
2 |
0 |
|
0% |
| src/lexigram/auth/web/middleware/throttle.py |
RateLimitMiddleware |
|
45 |
8 |
0 |
|
82% |
| src/lexigram/auth/web/middleware/throttle.py |
(no class) |
|
30 |
6 |
3 |
|
80% |
| src/lexigram/auth/web/middleware/token_cache.py |
TokenCache |
|
58 |
25 |
0 |
|
57% |
| src/lexigram/auth/web/middleware/token_cache.py |
(no class) |
|
16 |
0 |
2 |
|
100% |
| src/lexigram/auth/web/middleware/token_extractor.py |
TokenExtractor |
|
24 |
16 |
0 |
|
33% |
| src/lexigram/auth/web/middleware/token_extractor.py |
(no class) |
|
9 |
0 |
2 |
|
100% |