Add a test with locked file on windows

This commit is contained in:
Kovid Goyal 2023-04-08 13:07:42 +05:30
parent e25f8bf61c
commit 5db45f0563
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 10 additions and 1 deletions

View File

@ -91,7 +91,7 @@ class WindowsFileCopier:
for path, file_id in self.path_to_fileid_map.items(): for path, file_id in self.path_to_fileid_map.items():
self.fileid_to_paths_map[file_id].add(path) self.fileid_to_paths_map[file_id].add(path)
for src in self.copy_map: for src in self.copy_map:
self.path_to_handle_map = self._open_file(src) self.path_to_handle_map[src] = self._open_file(src)
def __exit__(self, *a) -> None: def __exit__(self, *a) -> None:
for h in self.path_to_handle_map.values(): for h in self.path_to_handle_map.values():

View File

@ -7,6 +7,7 @@ import tempfile
import time import time
import unittest import unittest
from calibre import walk
from calibre.constants import iswindows from calibre.constants import iswindows
from .copy_files import copy_tree from .copy_files import copy_tree
@ -79,6 +80,14 @@ class TestCopyFiles(unittest.TestCase):
if not iswindows: if not iswindows:
self.ae(os.readlink(self.d('link.extra')), 'sub/a') self.ae(os.readlink(self.d('link.extra')), 'sub/a')
self.reset()
src, dest = self.s(), self.d()
if iswindows:
with open(self.s('sub/a')) as locked:
locked
self.assertRaises(IOError, copy_tree, src, dest)
self.ae(os.listdir(self.d()), ['sub'])
self.assertFalse(tuple(walk(self.d())))
def find_tests(): def find_tests():
return unittest.defaultTestLoader.loadTestsFromTestCase(TestCopyFiles) return unittest.defaultTestLoader.loadTestsFromTestCase(TestCopyFiles)