Delete a directory, returning whether deletion succeeded.
(dirname)
| 249 | |
| 250 | |
| 251 | def force_delete_dir(dirname): |
| 252 | """Delete a directory, returning whether deletion succeeded.""" |
| 253 | if not os.path.exists(dirname): |
| 254 | return True |
| 255 | assert not os.path.isfile(dirname) |
| 256 | |
| 257 | try: |
| 258 | make_dir_writeable(dirname) |
| 259 | utils.delete_dir(dirname) |
| 260 | except PermissionError as e: |
| 261 | # This issue currently occurs on Windows when running browser tests e.g. |
| 262 | # on Firefox browser. Killing Firefox browser is not 100% watertight, and |
| 263 | # occasionally a Firefox browser process can be left behind, holding on |
| 264 | # to a file handle, preventing the deletion from succeeding. |
| 265 | # We expect this issue to only occur on Windows. |
| 266 | if not WINDOWS: |
| 267 | raise e |
| 268 | print(f'Warning: Failed to delete directory "{dirname}"\n{e}') |
| 269 | return False |
| 270 | return True |
| 271 | |
| 272 | |
| 273 | def force_delete_contents(dirname): |
no test coverage detected