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/%5B/frontends/index.php?a=commitdiff_plain;h=b56c55bab4a5d7eca240b227143e1bd6554d8baa;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 7902e8b8..07c417f9 100644
--- a/src/allmydata/util/fileutil.py
+++ b/src/allmydata/util/fileutil.py
@@ -625,6 +625,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)