diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 5d01314..96381e3 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -773,7 +773,7 @@ class File(Entry): def prepare(self): """Prepare for this file to be created.""" if self.exists(): - if not self.precious: + if self.builder and not self.precious: os.unlink(self.path) if hasattr(self, '_exists'): delattr(self, '_exists') diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 24a508b..3bba3f4 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -493,9 +493,16 @@ class FSTestCase(unittest.TestCase): nonexistent(fs.Dir, 'nonexistent') nonexistent(fs.Dir, 'nonexistent/foo') + test.write("preserve_me", "\n") + assert os.path.exists(test.workpath("preserve_me")) + f1 = fs.File(test.workpath("preserve_me")) + f1.prepare() + assert os.path.exists(test.workpath("preserve_me")) + test.write("remove_me", "\n") assert os.path.exists(test.workpath("remove_me")) f1 = fs.File(test.workpath("remove_me")) + f1.builder = 1 f1.prepare() assert not os.path.exists(test.workpath("remove_me")) |
