e8bd348c77
CI / lint (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 53s
CI / integration_tests (pull_request) Successful in 1m10s
CI / build (pull_request) Successful in 43s
CI / unit_tests (pull_request) Successful in 3m30s
CI / coverage (pull_request) Successful in 3m22s
CI / status-check (pull_request) Successful in 4s
CI / quality (push) Successful in 45s
CI / security (push) Successful in 48s
CI / lint (push) Successful in 49s
CI / typecheck (push) Successful in 50s
CI / build (push) Successful in 49s
CI / integration_tests (push) Successful in 1m9s
CI / unit_tests (push) Successful in 3m13s
CI / coverage (push) Successful in 3m7s
CI / status-check (push) Successful in 3s
Add RegistryError base with message, details, and original_reference fields. Implement all 9 typed exception types per Package Registry Standard §13.2: PackageNotFoundError, InvalidPackageIdError, InvalidPackageReferenceError, VersionNotFoundError, ValidationError, AuthenticationRequiredError, AccessDeniedError, ConflictError, and RegistryNetworkError. RegistryNetworkError carries status_code and url for transport failures. __str__ includes original_reference when available. exception_for_status() maps HTTP codes to typed exceptions. _ERROR_TYPE_MAP enables error-type parsing from JSON error bodies. 23 Behave BDD scenarios in features/registry_exceptions.feature. 12 Robot Framework integration tests in robot/exceptions.robot. Existing registry_http_client tests updated for InternalServerError removal. ISSUES CLOSED: #29
140 lines
6.4 KiB
Plaintext
140 lines
6.4 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration tests for exception hierarchy and error handling
|
|
Library OperatingSystem
|
|
Library CleverActorsLib.py
|
|
|
|
*** Test Cases ***
|
|
ConfigurationError Is Subclass Of CleverAgentsException
|
|
[Documentation] Verify exception hierarchy
|
|
Exception Is Subclass Of ConfigurationError CleverAgentsException
|
|
|
|
AgentCreationError Is Subclass Of CleverAgentsException
|
|
[Documentation] Verify agent creation error inheritance
|
|
Exception Is Subclass Of AgentCreationError CleverAgentsException
|
|
|
|
ConfigurationError Is Instance Of CleverAgentsException
|
|
[Documentation] Verify isinstance check works through hierarchy
|
|
Exception Is Instance Cleveragents Exception ConfigurationError
|
|
|
|
AgentCreationError Is Instance Of CleverAgentsException
|
|
[Documentation] Verify isinstance check for agent error
|
|
Exception Is Instance Cleveragents Exception AgentCreationError
|
|
|
|
# ── Registry exception hierarchy (§13.2) ─────────────────────────────────
|
|
|
|
RegistryError Is Subclass Of CleverAgentsException
|
|
[Documentation] RegistryError extends CleverAgentsException
|
|
Exception Is Subclass Of RegistryError CleverAgentsException
|
|
|
|
PackageNotFoundError Is Subclass Of RegistryError
|
|
[Documentation] Typed 404 extends RegistryError
|
|
Exception Is Subclass Of PackageNotFoundError RegistryError
|
|
|
|
InvalidPackageIdError Is Subclass Of RegistryError
|
|
[Documentation] Typed 400 extends RegistryError
|
|
Exception Is Subclass Of InvalidPackageIdError RegistryError
|
|
|
|
InvalidPackageReferenceError Is Subclass Of RegistryError
|
|
[Documentation] Custom 400 extends RegistryError
|
|
Exception Is Subclass Of InvalidPackageReferenceError RegistryError
|
|
|
|
VersionNotFoundError Is Subclass Of RegistryError
|
|
[Documentation] Typed 404 extends RegistryError
|
|
Exception Is Subclass Of VersionNotFoundError RegistryError
|
|
|
|
ValidationError Is Subclass Of RegistryError
|
|
[Documentation] Typed 400 extends RegistryError
|
|
Exception Is Subclass Of ValidationError RegistryError
|
|
|
|
AuthenticationRequiredError Is Subclass Of RegistryError
|
|
[Documentation] Typed 401 extends RegistryError
|
|
Exception Is Subclass Of AuthenticationRequiredError RegistryError
|
|
|
|
AccessDeniedError Is Subclass Of RegistryError
|
|
[Documentation] Typed 403 extends RegistryError
|
|
Exception Is Subclass Of AccessDeniedError RegistryError
|
|
|
|
ConflictError Is Subclass Of RegistryError
|
|
[Documentation] Typed 409 extends RegistryError
|
|
Exception Is Subclass Of ConflictError RegistryError
|
|
|
|
RegistryNetworkError Is Subclass Of RegistryError
|
|
[Documentation] 5xx and transport extends RegistryError
|
|
Exception Is Subclass Of RegistryNetworkError RegistryError
|
|
|
|
# ── RegistryError isinstance checks ──────────────────────────────────────
|
|
|
|
RegistryError Is Instance Of CleverAgentsException
|
|
[Documentation] RegistryError is a CleverAgentsException
|
|
Exception Is Instance Cleveragents Exception RegistryError
|
|
|
|
PackageNotFoundError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed errors inherit base class
|
|
Exception Is Instance Cleveragents Exception PackageNotFoundError
|
|
|
|
RegistryNetworkError Is Instance Of CleverAgentsException
|
|
[Documentation] NetworkError inherits base class
|
|
Exception Is Instance Cleveragents Exception RegistryNetworkError
|
|
|
|
InvalidPackageIdError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed errors inherit base class
|
|
Exception Is Instance Cleveragents Exception InvalidPackageIdError
|
|
|
|
InvalidPackageReferenceError Is Instance Of CleverAgentsException
|
|
[Documentation] Custom reference error inherits base class
|
|
Exception Is Instance Cleveragents Exception InvalidPackageReferenceError
|
|
|
|
VersionNotFoundError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed 404 inherits base class
|
|
Exception Is Instance Cleveragents Exception VersionNotFoundError
|
|
|
|
ValidationError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed 400 inherits base class
|
|
Exception Is Instance Cleveragents Exception ValidationError
|
|
|
|
AuthenticationRequiredError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed 401 inherits base class
|
|
Exception Is Instance Cleveragents Exception AuthenticationRequiredError
|
|
|
|
AccessDeniedError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed 403 inherits base class
|
|
Exception Is Instance Cleveragents Exception AccessDeniedError
|
|
|
|
ConflictError Is Instance Of CleverAgentsException
|
|
[Documentation] Typed 409 inherits base class
|
|
Exception Is Instance Cleveragents Exception ConflictError
|
|
|
|
# ── exception_for_status routing (§13.2) ─────────────────────────────────
|
|
|
|
Exception For Status 400 Returns InvalidPackageIdError
|
|
[Documentation] 400 status code maps to InvalidPackageIdError
|
|
Exception For Status Returns 400 InvalidPackageIdError
|
|
|
|
Exception For Status 401 Returns AuthenticationRequiredError
|
|
[Documentation] 401 status code maps to AuthenticationRequiredError
|
|
Exception For Status Returns 401 AuthenticationRequiredError
|
|
|
|
Exception For Status 403 Returns AccessDeniedError
|
|
[Documentation] 403 status code maps to AccessDeniedError
|
|
Exception For Status Returns 403 AccessDeniedError
|
|
|
|
Exception For Status 404 Returns PackageNotFoundError
|
|
[Documentation] 404 status code maps to PackageNotFoundError
|
|
Exception For Status Returns 404 PackageNotFoundError
|
|
|
|
Exception For Status 409 Returns ConflictError
|
|
[Documentation] 409 status code maps to ConflictError
|
|
Exception For Status Returns 409 ConflictError
|
|
|
|
Exception For Status 500 Returns RegistryNetworkError
|
|
[Documentation] 500 status code maps to RegistryNetworkError
|
|
Exception For Status Returns 500 RegistryNetworkError
|
|
|
|
Exception For Status 503 Returns RegistryNetworkError
|
|
[Documentation] 503 status code maps to RegistryNetworkError
|
|
Exception For Status Returns 503 RegistryNetworkError
|
|
|
|
Exception For Status 418 Returns RegistryError
|
|
[Documentation] Unknown 4xx status code falls back to RegistryError
|
|
Exception For Status Returns 418 RegistryError
|