name: erp-demo-testcase description: > Genera casos de test XML a la carpeta demo d'un mòdul OpenERP. Automatitza: validar mòdul, detectar camps obligatoris, resoldre many2one requerits i crear fitxers demo consistents. Trigger: Quan necessites afegir casos de test/demo XML a un mòdul OpenERP. metadata: author: oriol version: "0.1"
When to Use
Utilitza aquesta skill quan:
- Vols afegir nous casos de test en
demo/*.xml - Necessites crear registres d'un model amb camps obligatoris
- El model té dependències (
many2one) i cal crear prerequisits
Inputs Requerits
module_name: mòdul objectiu (ex:www_som)model_name: model OpenERP (ex:res.partner)record_id_prefix: prefix d'XML ID (ex:demo_www_som_partner)
Inputs Opcionals
optional_fields: diccionari de camps opcionals a omplirtarget_file: fitxer demo concret (ex:demo/www_som_demo.xml)create_dependencies:true/false(per defectetrue)
Workflow
1) Validar context del mòdul
- Verificar que existeix
<module_name>/__init__.py - Verificar manifest (
__terp__.pyo equivalent) i carpetademo/ - Si no existeix
demo/, crear-la
2) Descobrir camps obligatoris del model
- Localitzar classe/model Python on es defineix
_columns - Identificar camps
required=True - Separar:
- camps simples (
char,boolean,integer,float,date, ...) - camps relacionals (
many2one)
- camps simples (
3) Resoldre dependències obligatòries
Per cada many2one required=True:
- Reutilitzar XML ID existent si ja hi ha un registre vàlid a
demo/ - Si no existeix, crear registre mínim del model relacionat
- Repetir recursivament fins tancar dependències
4) Construir registre demo principal
- Crear
<record id="..." model="..."> - Omplir tots els camps obligatoris
- Aplicar
optional_fieldsdel prompt (si n'hi ha) - Usar
<field name="x" ref="module.xml_id"/>per many2one
5) Escriure/actualitzar XML
- Guardar a
demo/*.xml(fitxer existent o nou) - Mantenir IDs estables i únics
- Mantenir ordre: dependències abans del registre principal
- Si cal, registrar el fitxer demo al manifest del mòdul
6) Validacions finals
- No hi ha
reftrencats - No hi ha XML IDs duplicats
- Tots els
required=Trueestan coberts - El fitxer XML és ben format
Output Contract
Retornar sempre:
- Fitxer(s) tocats (
path) - XML IDs creats/reutilitzats
- Llista de dependències creades
- Camps obligatoris detectats
- Decisions preses (defaults, reutilització, exclusions)
Guardrails
- No modificar dades fora del mòdul objectiu
- No inventar camps: només
_columnsreals del model - Si falta context funcional per omplir un camp obligatori, preguntar a l'usuari
- Evitar side effects: només canvis a fitxers demo/manifest
Exemple d'ús
- "Afegeix un cas demo al mòdul
www_sompel modelres.partner, amb camp opcionalemail" - "Crea registre demo per
giscedata.polissai resol les dependències obligatòries"