From: Daira Hopwood <daira@jacaranda.org>
Date: Tue, 2 Jun 2015 01:09:25 +0000 (+0100)
Subject: fileutil: make the error behaviour of replace_file on Unix more similar to Windows.
X-Git-Url: https://git.rkrishnan.org/simplejson/module-simplejson.decoder.html?a=commitdiff_plain;h=6a577dd29c918e367cad3feb20f374aed8e25725;p=tahoe-lafs%2Ftahoe-lafs.git

fileutil: make the error behaviour of replace_file on Unix more similar to Windows.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
---

diff --git a/src/allmydata/util/fileutil.py b/src/allmydata/util/fileutil.py
index 26943212..133d2271 100644
--- a/src/allmydata/util/fileutil.py
+++ b/src/allmydata/util/fileutil.py
@@ -615,6 +615,8 @@ else:
         precondition_abspath(replacement_path)
         precondition_abspath(backup_path)
 
+        if not os.path.exists(replacement_path):
+            raise ConflictError("Replacement file not found: %r" % (replacement_path,))
         try:
             os.rename(replaced_path, backup_path)
             rename_no_overwrite(replacement_path, replaced_path)