You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"""
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('')
@classmethod def tmp_file(cls, name=''): cls.tmp_files.add(name) return name
@classmethod def tmp_folder(cls, name=''): cls.tmp_folders.add(name) return name
@classmethod 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
|