import os, sys import traceback import win32file FILENAME = "test" def rename_and_remove (filename): os.rename (filename, filename + ".deleted") os.remove (filename + ".deleted") def remove_only (filename): os.remove (filename) def test (remove): open (FILENAME, "w").close () hFile = win32file.CreateFile ( FILENAME, win32file.GENERIC_READ, win32file.FILE_SHARE_DELETE, None, win32file.OPEN_EXISTING, 0, 0 ) try: remove (FILENAME) try: open (FILENAME, "w").close () except IOError: print "FAIL" else: print "PASS" finally: hFile.Close () try: open (FILENAME, "w").close () except IOError: print "FAIL" else: print "PASS" if __name__ =='__main__': print print "Should see FAIL-PASS" test (remove_only) print print "Should see PASS-PASS" test (rename_and_remove)