Saltar al contenido
NUEVOGuía práctica con 5 agentes Python para Odoo, verificada contra Odoo 20 →
Focuz/academy

Lección 4 de 8 · intermedio · 15 min

Verificadores: tests de Odoo que guían al agente

TransactionCase, tagged tests, Form y linters como el "oráculo" del loop.

El test es la conversación

En un loop, el test no es un trámite final: es el mensaje que el sistema le devuelve al agente. Cuanto más preciso el fallo, más rápido converge.

from odoo.tests import TransactionCase, tagged

@tagged('post_install', '-at_install', 'loop')
class TestValorizacion(TransactionCase):
    def test_bloquea_avance_mayor_100(self):
        obra = self.env['project.project'].create({'name': 'Obra A'})
        self.env['construccion.valorizacion'].create(
            {'obra_id': obra.id, 'avance_pct': 0.8})
        with self.assertRaisesRegex(Exception, 'avance acumulado'):
            self.env['construccion.valorizacion'].create(
                {'obra_id': obra.id, 'avance_pct': 0.3})

Capas de verificación

  1. Instalación del módulo (detecta XML, manifest y accesos rotos).
  2. Tests unitarios de reglas de negocio.
  3. Tests de formulario con odoo.tests.Form para onchange y vistas.
  4. Lint (pylint-odoo, ruff) para estilo y errores comunes.

Ejecuta primero lo más barato; solo si pasa, lo más caro.

Practica con 5 casos reales

Descarga la guía gratuita con agentes Python para Odoo, de Junior a Senior.

Quiero la guía →