| 891 | |
| 892 | |
| 893 | class RenameTempFileHandler: |
| 894 | def __init__(self, coordinator, final_filename, temp_filename, osutil): |
| 895 | self._coordinator = coordinator |
| 896 | self._final_filename = final_filename |
| 897 | self._temp_filename = temp_filename |
| 898 | self._osutil = osutil |
| 899 | |
| 900 | def __call__(self, **kwargs): |
| 901 | error = kwargs['error'] |
| 902 | if error: |
| 903 | self._osutil.remove_file(self._temp_filename) |
| 904 | else: |
| 905 | try: |
| 906 | self._osutil.rename_file( |
| 907 | self._temp_filename, self._final_filename |
| 908 | ) |
| 909 | except Exception as e: |
| 910 | self._osutil.remove_file(self._temp_filename) |
| 911 | # the CRT future has done already at this point |
| 912 | self._coordinator.set_exception(e) |
| 913 | |
| 914 | |
| 915 | class AfterDoneHandler: |
no outgoing calls
no test coverage detected