195fbac109
CI / lint (pull_request) Successful in 40s
CI / helm (pull_request) Successful in 38s
CI / build (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 1m0s
CI / typecheck (pull_request) Successful in 1m29s
CI / security (pull_request) Successful in 1m28s
CI / push-validation (pull_request) Successful in 20s
CI / unit_tests (pull_request) Successful in 5m8s
CI / docker (pull_request) Successful in 1m27s
CI / integration_tests (pull_request) Successful in 8m39s
CI / coverage (pull_request) Successful in 11m1s
CI / status-check (pull_request) Successful in 3s
Add domain-scenario Gherkin tags to all A2A, session, and CLI feature files (30 files) so tests can be filtered individually via behave. - 8 A2A feature files: @a2a tag - 7 session feature files: @session tag - 15 CLI feature files: @cli tag ISSUES CLOSED: #9124
69 lines
3.9 KiB
Gherkin
69 lines
3.9 KiB
Gherkin
@session
|
|
Feature: PersistentSessionService coverage
|
|
Additional scenarios exercising previously uncovered code paths
|
|
in session_service.py (lines 97-98, 139-146, 150-151, 217, 248, 310-311).
|
|
|
|
Background:
|
|
Given the session service module is imported
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Lines 97-98: create() — event_bus.emit raises an exception
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Creating a session when event_bus emit raises logs a warning but succeeds
|
|
Given a mock session repository and message repository
|
|
And an event bus that raises on emit
|
|
And a persistent session service with the failing event bus
|
|
When sesscov I create a session with actor name "test/actor"
|
|
Then the session should be returned successfully
|
|
And the session repository should have recorded one create call
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Lines 139-146: delete() — event_bus present and emit succeeds
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Deleting a session with event_bus present emits ENTITY_DELETED event
|
|
Given a mock session repository and message repository
|
|
And a recording event bus
|
|
And a persistent session service with the recording event bus
|
|
And the session repository will return True for delete
|
|
When I delete session "01JTEST00000000000000000000"
|
|
Then the recording event bus should have received an ENTITY_DELETED event
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Lines 150-151: delete() — event_bus.emit raises an exception
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Deleting a session when event_bus emit raises logs a warning but succeeds
|
|
Given a mock session repository and message repository
|
|
And an event bus that raises on emit
|
|
And a persistent session service with the failing event bus
|
|
And the session repository will return True for delete
|
|
When I delete session "01JTEST00000000000000000000"
|
|
Then no exception should be raised from delete
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Line 217: export_session() — session not found
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Exporting a non-existent session raises SessionNotFoundError
|
|
Given a mock session repository and message repository
|
|
And a persistent session service without event bus
|
|
And the session repository returns None for get_by_id
|
|
When I export session "01JNONEXISTENT0000000000000"
|
|
Then a SessionNotFoundError should be raised with message containing "not found"
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Line 248: import_session() — missing checksum
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Importing session data with missing checksum raises SessionImportError
|
|
Given a mock session repository and message repository
|
|
And a persistent session service without event bus
|
|
When I import session data with valid schema version but no checksum
|
|
Then a SessionImportError should be raised with message containing "Missing checksum"
|
|
|
|
# -----------------------------------------------------------------------
|
|
# Lines 310-311: import_session() — invalid message data triggers KeyError
|
|
# -----------------------------------------------------------------------
|
|
Scenario: Importing session data with invalid messages raises SessionImportError
|
|
Given a mock session repository and message repository
|
|
And a persistent session service without event bus
|
|
When I import session data with valid checksum but invalid message fields
|
|
Then a SessionImportError should be raised with message containing "Invalid import data"
|