Tests that pin today's legacy network sync behavior
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- distributed-systems, testing
Direzione di ricerca
Inizia con il pattern request-spy di #363 e con i test esistenti in tests/testapp/tests/integration/test_network_characterization.py. Esamina morango/utils.py:79, morango/sync/context.py e le operazioni LegacyNetwork* in morango/sync/operations.py, quindi esegui i test di caratterizzazione. Il lavoro è completato quando vengono aggiunti test di legacy push e pull che verificano i requests completi, i campi finali della sessione e l’assenza dei quattro aggiornamenti delle fasi di serializzazione o queueing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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_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.
- Both tests assert the same final transfer session fields as the tests in #363.
- Both tests pass against the current code, with no changes to production code.
Technical Pointers & Architecture
- Target Components:
morango/utils.py:79(capabilities header),morango/sync/context.py(capabilities of the session context),morango/sync/operations.py(LegacyNetwork*operations). - Related Patterns: The request spy from #363.
- Data Model & Schema Considerations: None.
- Resilience & Failure Modes: None.
Notes & Tradeoffs
- Dependencies: Blocked by: #363 (Tests that pin today's async network push and pull behavior). Blocks: #365, #369.
- 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.
- Lingua principale
- Python
- Stelle
- 15
- Fork
- 23
- Merge medio
- 1g 11h
- PR unite (30g)
- 4
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di learningequality/morango
-
DEV: dev-ops DEV: distributions DOCS: developer
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
learningequality/morango#387 ·
-
DEV: backend DEV: dev-ops TAG: unit tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
learningequality/morango#385 ·
-
DEV: backend TAG: new feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
learningequality/morango#388 ·
-
DEV: backend TAG: unit tests
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
learningequality/morango#386 ·
-
DEV: backend P0 - critical TAG: new feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
learningequality/morango#384 ·
Tutte le issue di learningequality/morango
Issue simili
-
changelog investigate
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ramnes/notion-sdk-py#409 ·
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lindicaphxag-tech/kaggle#28 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
BSData/horus-heresy-3rd-edition#3211 ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Unreachable-proxy mount test depends on fixed port 9999Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno