# TESTS OPENACCESS ## Fonctionnement des tests ### Répertoires Le fichier Access `.\initial\projet0.zip` contient l'application de test. Les tests ont lieu dans le répertoire `.\work` Les résultats sont contrôlés au moyen du contenu du répertoire `.\reference` ### Le projet de départ L'application `project0.accdb` sert de support de test. Le fichier `db.accdb` contient les éventuelles tables liées. **ATTENTION: la chaine de connexion des tables liées à db.accdb doit pointer vers .\work\db.accdb et non pas .\initial\db.accdb** ### Déroulement #### Préparation des fichiers * Le dossier `.\work` est vidé > `del /f /s /q .\work` * Le dossier `.\results` est vidé > `del /f /s /q .\results` * `.\initial\projet0.zip` est extrait vers `.\work\projet0.accdb` > `unzip .\initial\project0.zip -d .\work` * `.\initial\db.zip` est extrait vers `.\work\db.accdb` > `unzip .\initial\db.zip -d .\work` * `.\initial\empty_project.zip` est extrait vers `.\work\empty_project.accdb` > `unzip .\initial\empty_project.zip -d .\work` #### Création des sources * La fonction `silent_export` de OpenAccess est executée depuis le fichier `.\work\project0.accdb` (via la macro `test_export` de `project0.accdb`) > `"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\project0.accdb" /X test_export` Le répertoire `.\work\source` est créé * L'existence du fichier `.\work\project0.zip` créé par l'export est contrôlée > `python assert_exists.py .\work\project0.zip` * Les fichiers `.\work\source\modules\test_methods.bas`, `.\work\source\macros\test_export.bas` et `.\work\source\macros\test_import.bas` sont supprimés (ils ne font pas partie du périmètre des tests et leur présence provoquera des erreurs à l'import) > `del .\work\source\modules\test_methods.bas` > `del .\work\source\macros\test_export.bas` > `del .\work\source\macros\test_import.bas` **ATTENTION à s'assurer que ces fichiers ont aussi été supprimés de .\reference\source!** * Le dossier `.\work\source` est copié vers `.\results\source_1` > `copy .\works\source .\results\source1` #### Contrôle des résultats * La fonction compare.py est utilisée pour comparer le contenu des sous-répertoires et des fichiers sources ainsi créés à ceux contenus dans le répertoire `.\reference\source` > `python compare.py .\work\source .\reference\source` #### Import des sources dans une base vide * La fonction `silent_import` de OpenAccess est executée depuis le fichier `.\work\empty_project.accdb` (via la macro `test_import` de `empty_project.accdb`) > `"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\empty_project.accdb" /X test_import` * `.\work\empty_project.accdb` est copié vers `.\results\result1.accdb` > `copy .\work\empty_project.accdb .\results\result1.accdb` * L'existence du fichier `.\work\empty_project.accdb.old` créé par l'export est contrôlée > `python assert_exists.py .\work\empty_project.accdb.old` #### Import des sources dans un projet existant * La fonction `silent_import` de OpenAccess est executée depuis le fichier `.\work\project0.accdb` (via la macro `test_import` de `project0.accdb`) > `.\work\project0.accdb /X test_import` * `.\work\project0.accdb` est copié vers `.\results\result2.accdb` > `copy .\work\project0.accdb .\results\result2.accdb` * L'existence du fichier `.\work\project0.accdb.old` créé par l'export est contrôlée > `python assert_exists.py .\work\project0.accdb.old` #### Contrôle des résultats * Exporter les sources de .\results\result1.accdb > `.\results\result1.accdb /X test_export` * Renommer .\results\source en .\results\source2 > `move .\results\source .\results\source2` * Controle des résultats > `python compare.py .\results\source2 .\reference\source` * Exporter les sources de .\results\result2.accdb > `.\results\result2.accdb /X test_export` * Renommer .\results\source en .\results\source3 > `move .\results\source .\results\source3` * Controle des résultats > `python compare.py .\results\source3 .\reference\source` ## Interpréter les résultats La build sera réussie si: * Elle se déroule jusqu'au bout sans erreur * La fonction `compare.py` retourne un code exit 0 à chaque fois qu'elle est appellée De plus, on peut vérifier les résultats dans le répertoire .\results: * initial.accdb contient le projet de départ * source1 contient le résultat de l'export des sources de project0.accdb * result1.accdb contient le résultat d'u import de ces sources dans une base vide * result2.accdb contient le résultat de l'improt des sources dans project0.accdb ## Commande batch @echo off echo clean the directories (if they exist) if exist .\work del /f /s /q .\work if exist .\results del /f /s /q .\results echo make the directories (if they do not) if not exist .\work md .\work if exist .\results md .\results echo unpack openaccess.accda if it does not exist in ..\ if not exist ..\OpenAccess.accda unzip ..\initial\OpenAccess.zip echo prepare files unzip .\initial\project0.zip -d .\work unzip .\initial\db.zip -d .\work unzip .\initial\empty_project.zip -d .\work echo ** tests: step 1 ** echo run the test_export macro .\work\project0.accdb" /X test_export echo control existence of zipped app python assert_exists.py .\work\project0.zip echo clean sources del .\work\source\modules\test_methods.bas del .\work\source\macros\test_export.bas del .\work\source\macros\test_import.bas echo copy source to results copy .\works\source .\results\source1 echo control the result python compare.py .\results\source1 .\reference\source echo ** tests: step 2 ** echo run import in empty_project.accdb "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\empty_project.accdb" /X test_import echo copy to results copy .\work\empty_project.accdb .\results\result1.accdb echo control existence of backup python assert_exists.py .\work\empty_project.accdb.old echo run import in project0.accdb "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\APPLIS_PARC\OpenAccess\tests\work\project0.accdb" /X test_import echo copy to results copy .\work\project0.accdb .\results\result2.accdb echo control existence of backup python assert_exists.py .\work\project0.accdb.old echo ** tests : step 3 ** echo make sources from result1.accdb .\results\result1.accdb /X test_export move .\results\source .\results\source2 echo control result python compare.py .\results\source2 .\reference\source echo make sources from result3.accdb .\results\result2.accdb /X test_export move .\results\source .\results\source3 echo control result python compare.py .\results\source3 .\reference\source echo ** end ** pause