Testi repozitorija
tests/ vsebuje teste orodij _pmiconfig in njihovih operativnih varnostnih pogodb. Ločen je od ../testkit/, ki zagotavlja skupno infrastrukturo repozitorijem dodatkov Odoo.
Skupine testov
test_cleanup_orphaned_filestores.sh: brisanje osirotelih shramb, predogled, ohranitev baz, narekovana imena, povezave, zavrnitev zamenjave, delne napake in varna pomoč z lažnim PostgreSQL ter omejenimi začasnimi shrambami. Zagon:bash tests/test_cleanup_orphaned_filestores.sh.test_update_addons_path.py: izbirne večvrstične spremembe konfiguracije, ohranitev bajtov, predogled, povezave, metapodatki, zavrnitve in napaka objave na sintetičnih datotekah.test_shared_config.sh: privzeti zunanji register, prednost izrecne konfiguracije, prazna predloga in manjkajoča konfiguracija. Kopiranje in obnova uporabljatafixtures/pmiverse.confter začasne registre, ne dejanskega_pmiregistry.test_reset_admin_password.py: ID 2, aktivacija, zasebna ustvarjena gesla, zavrnitve in napake transakcije z nadomestki Odoo.test_create_database.py: nova baza, varen vhod gesel, kolizije, stanje modulov in delni neuspeh s sintetičnim Odoo; brez dejanskega okolja ali povezave PostgreSQL.test_script_cli.py: inventar vseh izvedljivihscripts/, varna-h/--help, dopolnjevanje možnosti, registracije poti, predlogi vrednosti, zamenjava starega./basenamein idempotentna uporabniška namestitev. Zahteva Linux Bubblewrap (bwrap) z delujočimi imenskimi prostori. Manjkajoči program preskoči teste, napaka imenskih prostorov jih označi za neuspešne. Peskovnik skrije aktivno konfiguracijo, blokira omrežje, naredi gostiteljske datoteke samo za branje in izpostavi le neškodljiva orodja pomoči. Knjižnice Bash in vzdrževalni SQL niso v inventarju CLI.test_enhanced_update18_catalog.py: izbor kataloga prevodov, poti clone/update in napake Git z lažnimi ukazi.test_translation_deploy.py: samodejna namestitev prevodov obeh posodabljalnikov 18, vrstni red odvisnosti, ujemanje ciljev, preskoki in izhodne kode z začasno konfiguracijo ter lažnimi operacijami.test_update_pot_repo.py: mape katalogov, neveljavni vhodi, neoperativni seznam repozitorijev in skupno dopolnjevanje brez izvoza baz.test_fetch_requirements.py: odkrivanje izvajalnih zahtev, rekurzivne vključitve, izključitve, podvojitve, omejitve različic in ustvarjanje izhoda.test_pmiverse_odoo_addons.py: skupni vtičnik imenskega prostora pytest.test_backup_locking.sh: objava kopij in zaklepanje v izoliranih primerih.test_backup_registry.sh: instance/baze, predogled, napačna konfiguracija, PostgreSQL, gostiteljska objava, delni neuspeh, ločevanje poti, hramba po bazah in vgnezdeni viri obnove prenosnika.test_backup_follow.sh: zagon storitve, dnevnik, prenos izida, priklop aktivnemu zagonu in čiščenje signalov z izoliranimi nadomestki.test_restore_safety.sh: preverjanje obnove, ključavnice, objava, povratek in varnost signalov.test_restore_config_library.sh,test_restore_archive_library.sh,test_restore_postgresql_library.sh,test_restore_neutralization_library.shintest_restore_publication_library.sh: pet lastniških meja knjižnic obnove.test_restore_cli_contract.sh: javno nalaganje, argumenti, suhi zagon, neposreden zagon, druga trenutna mapa, povezave in manjkajoče knjižnice.- Ciljni testi izbora vira in CLI so v lastniškem
_pmiregistry/tests/. test_restore_docs_completion.sh: trajna arhitektura, načini, navigacija in razvrstitev starejših ukazov.test_integration_layout.sh: postavitev pomočnikov integracije, načini/sintaksa, pogodba rezerviranega mesta in odstranjene poti.test_testkit_layout.sh: avtoritativno drevo skupnih virov, porabniki poti, imena ciljnih ogrodij in zaščita pred zastarelimi potmi med repozitoriji.test_pytest_repo_parallel.sh: sprotno razporejanje dodatkov, sočasnost, pobiranje zaključkov in štetje napak z izoliranimi delavci.test_pytest_repo_keep_db.sh: ohranitev baz ob uspehu/napaki, privzeto čiščenje in ločevanje argumentov izvajalnika/pytest z lažnimi bazami ter dejansko politiko čiščenja dodatka.test_pytest_addon_dependencies.sh: samodejna namestitev testnih aplikacij, nespremenjen zagon samo dodatka, neveljavne deklaracije in baze pred pisanjem ter čiščenje po napaki namestitve v popolnoma lažnem okolju izvajalnika.test_ruff_policy.py: kanonični uvozi, skupni porabniki samo Ruff, preverjanje brez pisanja, idempotentni popravki in pomenska sinhronizacija.
Bajtna koda Python, __pycache__/ in .pytest_cache/ so prezrto ustvarjeno lokalno stanje in ne sodijo v izvor.
Statični pregledi
Repozitorijska .shellcheckrc analizira vključene knjižnice in razreši namige vira relativno na skripto. Aktiviranje izvajalnega virtualnega okolja in ustvarjena testna koda uporabljata /dev/null, ker vira ni v repozitoriju. Ozke direktive ohranijo namerno ujemanje glob, dobesedno besedilo trditev in injekcijskih primerov, izhodne spremenljivke klicatelja ter povratne klice pasti, ki jim ShellCheck ne more slediti. Ustreznih pregledov ne izklopijo za cel repozitorij.
Kataloški test uporablja ozke oznake PyCharm za monkeypatch dinamično uvoženega modula in podedovane metode standardne knjižnice. Privzeti pytest raising=True še vedno preveri obstoj vseh zamenjanih atributov.
Zagon testov
Ustvarjanje in obnovitev skrbnika delita pomočnike okolja/gesel. Vodnik izvedbe poda skupni omejeni ukaz in meje dokazov z nadomestki.
Enotnega izvajalnika vseh testov te mape ni. Izberite najmanjši ustrezni test in prej preglejte pripravljalne primere. Lupinski testi izolirano obdajajo operativne skripte; ne zamenjajte jih z dejanskimi bazami, shrambami, kopijami ali nameščenimi instancami. Sledite kanonični politiki in portalu. Lastništvo obnove določa arhitekturna pogodba.
Samostojni test kataloga ne potrebuje vtičnikov Odoo. Uporabite nastavljeni interpreter brez samodejnega nalaganja zunanjih vtičnikov:
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 /srv/pmiverse/_pmisuite18/venv/bin/python \
-m pytest tests/test_enhanced_update18_catalog.py tests/test_translation_deploy.py \
-q -p no:cacheprovider