You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This task (milestone M1) extends the characterization suite to the legacy network flow. In the legacy flow, the client does not have ASYNC_OPERATIONS, and the server serializes and queues when the client creates the transfer session.
Background & Motivation
The refactors in milestones M2 to M4 move the LegacyNetwork* operations under a new base class. Older Kolibri servers still use the legacy flow. A change in this flow breaks syncs with those servers, and the async tests from #363 do not show it.
The tests run a push and a pull with the client capabilities reduced so that ASYNC_OPERATIONS is absent. The reduced set applies to the capabilities header and to the session context.
The tests record the HTTP requests as in #363. The expected lists show that the client creates the transfer session and sends no stage updates for serializing, queuing, dequeuing, or deserializing. The tests assert the same final state as #363.
Deliverables & Contracts
The task delivers:
A legacy push test and a legacy pull test in tests/testapp/tests/integration/test_network_characterization.py.
Acceptance Criteria
The legacy push test asserts the full request list.
The legacy pull test asserts the full request list.
Neither list contains a stage update for serializing, queuing, dequeuing, or deserializing.
Testing Requirements: This task completes the characterization suite. The refactor tasks in milestones M2 to M4 must pass the suite without edits.
Tradeoffs & Alternatives Considered: The tests reduce the client capabilities, and the server keeps its full set. This matches a new client that has async operations turned off with MORANGO_DISALLOW_ASYNC_OPERATIONS.
Metadata
Complexity: Low
Target Branch: release-v0.9.x
AI Usage
Drafted with Claude (Claude Code) from the approved design spec and implementation plan. The author reviewed the requirements, and the code references were checked against the release-v0.9.x codebase.
Overview
This task (milestone M1) extends the characterization suite to the legacy network flow. In the legacy flow, the client does not have
ASYNC_OPERATIONS, and the server serializes and queues when the client creates the transfer session.Background & Motivation
The refactors in milestones M2 to M4 move the
LegacyNetwork*operations under a new base class. Older Kolibri servers still use the legacy flow. A change in this flow breaks syncs with those servers, and the async tests from #363 do not show it.Design: spec. Plan: implementation plan, Task 3.
Description & Expected Outcomes
The tests run a push and a pull with the client capabilities reduced so that
ASYNC_OPERATIONSis absent. The reduced set applies to the capabilities header and to the session context.The tests record the HTTP requests as in #363. The expected lists show that the client creates the transfer session and sends no stage updates for serializing, queuing, dequeuing, or deserializing. The tests assert the same final state as #363.
Deliverables & Contracts
The task delivers:
tests/testapp/tests/integration/test_network_characterization.py.Acceptance Criteria
Technical Pointers & Architecture
morango/utils.py:79(capabilities header),morango/sync/context.py(capabilities of the session context),morango/sync/operations.py(LegacyNetwork*operations).Notes & Tradeoffs
MORANGO_DISALLOW_ASYNC_OPERATIONS.Metadata
AI Usage
Drafted with Claude (Claude Code) from the approved design spec and implementation plan. The author reviewed the requirements, and the code references were checked against the
release-v0.9.xcodebase.