Orchestrata Ultimate › Tests › Reference › postman › test_error_handler

Tests reference — tests/postman/test_error_handler.py

Module of tests/postman, split out because the directory page would be too large.

Prose pending.

tests/postman/test_error_handler.py

source · 48 tests · 612 lines

Tests for Postman error handler with circuit breaker.

Covers: postman.error_handler, postman.exceptions

Kind Name Line Description
class TestCircuitBreaker 22 Test CircuitBreaker functionality.
method TestCircuitBreaker.test_init_sets_threshold_and_timeout 25 CircuitBreaker.init sets failure_threshold and reset_timeout.
method TestCircuitBreaker.test_init_default_values 35 CircuitBreaker.init uses default threshold and timeout.
method TestCircuitBreaker.test_is_open_returns_false_when_closed 44 CircuitBreaker.is_open returns False when state is closed.
method TestCircuitBreaker.test_is_open_returns_true_when_open 50 CircuitBreaker.is_open returns True when state is open.
method TestCircuitBreaker.test_is_open_transitions_to_half_open_after_timeout 61 CircuitBreaker.is_open transitions to half_open after reset_timeout.
method TestCircuitBreaker.test_is_open_remains_true_before_timeout 77 CircuitBreaker.is_open remains True before reset_timeout expires.
method TestCircuitBreaker.test_is_open_returns_false_when_half_open 89 CircuitBreaker.is_open returns False when state is half_open.
method TestCircuitBreaker.test_record_success_resets_failures 104 CircuitBreaker.record_success resets failure count to 0.
method TestCircuitBreaker.test_record_success_closes_half_open_circuit 115 CircuitBreaker.record_success closes circuit when half_open.
method TestCircuitBreaker.test_record_success_does_not_change_closed_state 134 CircuitBreaker.record_success keeps circuit closed when already closed.
method TestCircuitBreaker.test_record_failure_increments_count 142 CircuitBreaker.record_failure increments failure count.
method TestCircuitBreaker.test_record_failure_sets_last_failure_timestamp 152 CircuitBreaker.record_failure sets last_failure timestamp.
method TestCircuitBreaker.test_record_failure_opens_at_threshold 163 CircuitBreaker.record_failure opens circuit at failure_threshold.
method TestCircuitBreaker.test_record_failure_opens_immediately_at_threshold_one 178 CircuitBreaker.record_failure opens circuit immediately with threshold=1.
method TestCircuitBreaker.test_circuit_full_lifecycle 186 CircuitBreaker transitions through closed->open->half_open->closed.
class TestPostmanErrorHandler 211 Test PostmanErrorHandler functionality.
method TestPostmanErrorHandler.test_init_with_max_retries_and_threshold 214 PostmanErrorHandler.init sets max_retries and failure_threshold.
method TestPostmanErrorHandler.test_init_default_values 224 PostmanErrorHandler.init uses default max_retries and threshold.
method TestPostmanErrorHandler.test_handle_returns_retry_for_timeout_error 231 PostmanErrorHandler.handle returns should_retry=True for timeout.
method TestPostmanErrorHandler.test_handle_returns_no_retry_for_circuit_open_error 243 PostmanErrorHandler.handle returns should_retry=False for CircuitOpenError.
method TestPostmanErrorHandler.test_handle_returns_no_retry_for_max_retries_exceeded 254 PostmanErrorHandler.handle returns should_retry=False for MaxRetriesExceededError.
method TestPostmanErrorHandler.test_handle_returns_no_retry_for_delivery_failed 265 PostmanErrorHandler.handle returns should_retry=False for DeliveryFailedError.
method TestPostmanErrorHandler.test_handle_returns_no_retry_when_max_retries_reached 276 PostmanErrorHandler.handle returns should_retry=False when retry_attempt >= max_retries.
method TestPostmanErrorHandler.test_handle_returns_no_retry_when_circuit_open 287 PostmanErrorHandler.handle returns should_retry=False when circuit is open.
method TestPostmanErrorHandler.test_handle_records_failure_on_retriable_error 303 PostmanErrorHandler.handle records failure for retriable errors.
method TestPostmanErrorHandler.test_handle_records_failure_when_max_retries_reached 318 PostmanErrorHandler.handle records failure when max retries exceeded.
method TestPostmanErrorHandler.test_handle_uses_unknown_destination_when_missing 330 PostmanErrorHandler.handle uses 'unknown' when destination missing from context.
method TestPostmanErrorHandler.test_handle_defaults_retry_attempt_to_zero 342 PostmanErrorHandler.handle defaults retry_attempt to 0 when missing.
method TestPostmanErrorHandler.test_is_circuit_open_returns_false_for_new_destination 353 PostmanErrorHandler.is_circuit_open returns False for new destination.
method TestPostmanErrorHandler.test_is_circuit_open_returns_true_when_circuit_open 359 PostmanErrorHandler.is_circuit_open returns True when circuit is open.
method TestPostmanErrorHandler.test_is_circuit_open_delegates_to_circuit_breaker 368 PostmanErrorHandler.is_circuit_open delegates to CircuitBreaker.is_open.
method TestPostmanErrorHandler.test_record_success_delegates_to_circuit_breaker 379 PostmanErrorHandler.record_success delegates to CircuitBreaker.record_success.
method TestPostmanErrorHandler.test_record_success_creates_circuit_if_missing 390 PostmanErrorHandler.record_success creates circuit for new destination.
method TestPostmanErrorHandler.test_record_failure_delegates_to_circuit_breaker 403 PostmanErrorHandler.record_failure delegates to CircuitBreaker.record_failure.
method TestPostmanErrorHandler.test_record_failure_creates_circuit_if_missing 413 PostmanErrorHandler.record_failure creates circuit for new destination.
method TestPostmanErrorHandler.test_get_circuit_returns_existing_circuit 424 PostmanErrorHandler._get_circuit returns existing circuit for destination.
method TestPostmanErrorHandler.test_get_circuit_creates_new_circuit_with_threshold 435 PostmanErrorHandler._get_circuit creates CircuitBreaker with failure_threshold.
method TestPostmanErrorHandler.test_get_circuit_creates_separate_circuits_per_destination 444 PostmanErrorHandler._get_circuit creates separate circuits for each destination.
method TestPostmanErrorHandler.test_calculate_backoff_returns_exponential_delay 456 PostmanErrorHandler._calculate_backoff returns exponential delay.
method TestPostmanErrorHandler.test_calculate_backoff_returns_positive_values 469 PostmanErrorHandler._calculate_backoff never returns negative values.
method TestPostmanErrorHandler.test_calculate_backoff_increases_with_attempts 477 PostmanErrorHandler._calculate_backoff increases with retry attempts.
method TestPostmanErrorHandler.test_handle_multiple_destinations_independent_circuits 487 PostmanErrorHandler.handle maintains independent circuits per destination.
method TestPostmanErrorHandler.test_handle_integration_with_circuit_recovery 507 PostmanErrorHandler.handle allows recovery after circuit opens and resets.
class TestErrorHandlerEdgeCases 539 Test edge cases and error conditions.
method TestErrorHandlerEdgeCases.test_handle_with_empty_context 542 PostmanErrorHandler.handle handles empty context gracefully.
method TestErrorHandlerEdgeCases.test_handle_with_negative_retry_attempt 553 PostmanErrorHandler.handle treats negative retry_attempt as 0.
method TestErrorHandlerEdgeCases.test_handle_with_very_large_retry_attempt 568 PostmanErrorHandler.handle rejects very large retry attempts.
method TestErrorHandlerEdgeCases.test_calculate_backoff_with_zero_attempt 579 PostmanErrorHandler._calculate_backoff handles attempt=0.
method TestErrorHandlerEdgeCases.test_calculate_backoff_with_large_attempt 588 PostmanErrorHandler._calculate_backoff handles large attempts.
method TestErrorHandlerEdgeCases.test_multiple_handlers_independent_circuits 597 Multiple PostmanErrorHandler instances maintain independent circuits.