Saltar al contenido principal
Versión: Tryton 6.0 (LTS)

10. Pruebas, migraciones y entrega

Tryton 6.0 · curso práctico versionado

Objetivos

  • escribir pruebas centradas en escenarios
  • diseñar migraciones de esquema progresivas
  • construir e inspeccionar el artefacto distribuible

Modelo mental

Este concepto debe entenderse como parte de un sistema transaccional: la interfaz ayuda al usuario, el servidor conserva las reglas y la base persiste el resultado. Estar listo para producción exige evidencia: pruebas repetibles, actualización ensayada, permisos explícitos, respaldo restaurable y artefacto instalable producido por CI.

Práctica guiada

  1. Comience con activación mediante ModuleTestCase.
  2. Pruebe comportamiento, permisos, estados y límites multicompañía.
  3. Implemente migraciones en register con comprobaciones de existencia.
  4. Actualice una copia con datos de la versión anterior.
  5. Construya el wheel, instálelo en limpio y ejecute allí las pruebas.

Ejemplo mínimo

from trytond.modules.company.tests import CompanyTestMixin
from trytond.tests.test_tryton import ModuleTestCase, with_transaction

class LibraryTestCase(CompanyTestMixin, ModuleTestCase):
module = 'library'

@with_transaction()
def test_book_requires_title(self):
pool = self.pool
Book = pool.get('library.book')
book = Book()
self.assertFalse(book.title)

# Typical verification commands
python -m unittest trytond.modules.library.tests.test_module
python -m build
python -m twine check dist/*

Cómo leer el ejemplo

Una prueba llamada test_create es débil si no expresa el resultado empresarial. Añada una regresión por defecto corregido y pruebe el wheel instalado, no solo el checkout.

Ejercicio

Cree datos previos, renombre un campo de forma segura, migre sus valores y concilie cantidades antes y después.

Realice el ejercicio primero con un caso mínimo, después agregue un caso inválido y convierta ambos en pruebas repetibles.

Resultado verificable

Instalación y actualización pasan; el wheel contiene XML, CSV, traducciones y vistas; la reversión consiste en restaurar y no en improvisar una migración inversa.

Errores frecuentes

  • probar solo casos felices
  • usar producción para el primer ensayo
  • publicar sin inspeccionar el wheel
  • considerar la compilación prueba de compatibilidad empresarial

Criterio para avanzar

  • Puedo explicar la diferencia entre los conceptos sin mirar el código.
  • El caso válido y el inválido tienen pruebas.
  • Probé con un usuario sin privilegios administrativos.
  • Sé cómo actualizar y cómo recuperar la base de entrenamiento.

Versión y referencias

La serie 6.0 requiere como mínimo Python 3.6 según los metadatos oficiales. Esta rama oficial todavía conserva metadatos históricos en setup.py; mantenga compatibilidad con la serie, pero prepare sus paquetes personalizados para la construcción estándar mediante python -m build. No confunda ese mínimo histórico con la versión de Python que haya certificado su organización.

Esta edición fija ejemplos y dependencias en la serie 6.0. Consulte el tutorial oficial 6.0, la API del servidor y el código de esa rama antes de trasladar el patrón a producción.