Spaces:
Sleeping
Sleeping
| """ | |
| This module adds context manager for temporary files generated by the tests. | |
| """ | |
| import shutil | |
| import os | |
| class TmpFileManager: | |
| """ | |
| A class to track record of every temporary files created by the tests. | |
| """ | |
| tmp_files = set('') | |
| tmp_folders = set('') | |
| def tmp_file(cls, name=''): | |
| cls.tmp_files.add(name) | |
| return name | |
| def tmp_folder(cls, name=''): | |
| cls.tmp_folders.add(name) | |
| return name | |
| def cleanup(cls): | |
| while cls.tmp_files: | |
| file = cls.tmp_files.pop() | |
| if os.path.isfile(file): | |
| os.remove(file) | |
| while cls.tmp_folders: | |
| folder = cls.tmp_folders.pop() | |
| shutil.rmtree(folder) | |
| def cleanup_tmp_files(test_func): | |
| """ | |
| A decorator to help test codes remove temporary files after the tests. | |
| """ | |
| def wrapper_function(): | |
| try: | |
| test_func() | |
| finally: | |
| TmpFileManager.cleanup() | |
| return wrapper_function | |