ayon-core/tests/lib/README.md
2021-09-02 19:01:03 +02:00

46 lines
No EOL
1.6 KiB
Markdown

Automatic testing
-----------------
Folder for libs and tooling for automatic testing.
- db_handler.py - class for preparation of test DB
- dumps DB(s) to BSON (mongodump)
- loads dump(s) to new DB (mongorestore)
- loads sql file(s) to DB (mongoimport)
- deletes test DB
- file_handler.py - class to download test data from GDrive
- downloads data from (list) of files from GDrive
- check file integrity with MD5 hash
- unzips if zip
- testing_wrapper.py - base class to use for testing
- all env var necessary for running (OPENPYPE_MONGO ...)
- implements reusable fixtures to:
- load test data (uses `file_handler`)
- prepare DB (uses `db_handler`)
- modify temporarily env vars for testing
Should be used as a skeleton to create new test cases.
Test data
---------
Each class implementing `TestCase` can provide test file(s) by adding them to
TEST_FILES ('GDRIVE_FILE_ID', 'ACTUAL_FILE_NAME', 'MD5HASH')
GDRIVE_FILE_ID can be pulled from shareable link from Google Drive app.
Currently it is expected that test file will be zip file with structure:
- expected - expected files (not implemented yet)
- input
- data - test data (workfiles, images etc)
- dumps - folder for BSON dumps from (`mongodump`)
- env_vars
env_vars.json - dictionary with environment variables {key:value}
- json - json files to load with `mongoimport` (human readable)
Example
-------
See `tests\unit\openpype\modules\sync_server\test_site_operations.py` for example usage of implemented classes.