OCA / l10n-italy

Odoo Italian localization
https://www.odoo-italia.org
GNU Affero General Public License v3.0
147 stars 301 forks source link

[RFC] Refactoring test automatici #2507

Closed SimoRubi closed 7 months ago

SimoRubi commented 2 years ago

Is your feature request related to a problem? No

Describe the solution you'd like Non dover ripetere lo stesso setup nei test di diversi moduli, ad esempio:

Uno dei motivi per cui è necessario modificare/creare l'azienda è che ha un piano dei conti generico, si potrebbe quindi definire un'azienda con piano dei conti italiano (utilizzando ad esempio https://github.com/odoo/odoo/blob/c63af09774414a004ef34644b4f38b4fdb1d12bd/addons/account/tests/common.py#L173) da poter riutilizzare nei test dei moduli dipendenti.

Un altro approccio possibile è fare in modo che le aziende definite abbiano già il piano dei conti italiano come viene già fatto ad esempio in https://github.com/odoo/odoo/blob/3741e141e5a468b8ce0413f4f7d7fc05751b0c1b/addons/l10n_it_stock_ddt/tests/test_ddt.py#L11-L12.

Questo implicherebbe però avere la dipendenza da l10n_it per poter caricare il piano dei conti nei test.

Commenti? Proposte? Soluzioni?

Additional context Tutto ciò nasce dalla review dell'ennesimo modulo che deve ripetere le stesse modifiche: https://github.com/OCA/l10n-italy/pull/2386#discussion_r734522202

TheMule71 commented 2 years ago

La mia idea sarebbe slegare completamente i test dai dati demo. Questi possono cambiare da release a release e non necessariamente ciò che sono dati ideali per una demo sono anche ideali per dei test.

Quindi, a partire dai moduli al top della catena di dipendenze, ci vorrebbe una classe comune per tutti i test che possa avere tutto già configurato (il più possibile), lasciano ai moduli "figli" il compito di eventualmente riempire quanto di loro competenza, e possibilmente solo quello.

Per spiegarmi meglio, se al modulo M serve il campo C popolato, andrebbe fatto nel primo modulo utile (la regola non è ogni modulo setta ciò che gli serve, ma ogni modulo setta ciò che può, in modo che il campo C sia popolato dallo stesso modulo che lo rende disponibile e non da M).

Eventualmente, tipo in l10n_it_account, io comincerei a creare company, mini piano dei conti (per non dipendere da nessun piano esterno ai test - alla fine ci bastano una manciata di conti), tasse, clienti, fornitori, ecc. Molto del codice c'è già si tratta di organizzarlo e spostarlo più "in alto" possibile.

github-actions[bot] commented 8 months ago

There hasn't been any activity on this issue in the past 6 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. If you want this issue to never become stale, please ask a PSC member to apply the "no stale" label.