Tests that pin today's legacy network sync behavior
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- distributed-systems, testing
Línea de trabajo
Empieza con el patrón request-spy de #363 y las pruebas existentes en tests/testapp/tests/integration/test_network_characterization.py. Revisa morango/utils.py:79, morango/sync/context.py y las operaciones LegacyNetwork* en morango/sync/operations.py, y luego ejecuta las pruebas de caracterización. Se considera terminado cuando se hayan añadido pruebas de legacy push y pull que verifiquen los requests completos, los campos finales de la sesión y la ausencia de las cuatro actualizaciones de las etapas de serialización o queueing.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 15
- Forks
- 23
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de learningequality/morango
-
DEV: dev-ops DEV: distributions DOCS: developer
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
learningequality/morango#387 ·
-
DEV: backend DEV: dev-ops TAG: unit tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
learningequality/morango#385 ·
-
DEV: backend TAG: new feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
learningequality/morango#388 ·
-
DEV: backend TAG: unit tests
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
learningequality/morango#386 ·
-
DEV: backend P0 - critical TAG: new feature
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
learningequality/morango#384 ·
Todos los issues de learningequality/morango
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 3 días
-
Negation with "not" and "no" is ignored during sentiment analysisPosiblemente ocupada @vivek-3728 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
techcsispit/mess-mood#11 · 1 comentario ·
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
ramnes/notion-sdk-py#408 ·
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
btclib-org/btclib-wallet#267 ·
Los mantenedores suelen responder en 1 día
-
good first issue tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
knnmelprop/YAADO#111 ·