diff options
| author | Steven Knight <knight@baldmt.com> | 2005-10-08 17:25:47 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2005-10-08 17:25:47 (GMT) |
| commit | 7935d8f439453bb30c0db7b1dedcffda71521030 (patch) | |
| tree | 1969a774c96063c2eb3a09d289a1965df7b4fc44 /src/engine/SCons/Node/FSTests.py | |
| parent | e664e763f95c2e24f1f08f11e61828c68baf9854 (diff) | |
| download | SCons-7935d8f439453bb30c0db7b1dedcffda71521030.zip SCons-7935d8f439453bb30c0db7b1dedcffda71521030.tar.gz SCons-7935d8f439453bb30c0db7b1dedcffda71521030.tar.bz2 | |
Remove old, same-named files from a build directory if the file in the source directory does not exist. (Patrick Mezard)
Diffstat (limited to 'src/engine/SCons/Node/FSTests.py')
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 60b0197..71fb3ef 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -1836,6 +1836,37 @@ class FileTestCase(_tempdirTestCase): dirs = fff.Dirs(['d1', 'd2']) assert dirs == [d1, d2], map(str, dirs) + def test_exists(self): + """Test the File.exists() method""" + fs = self.fs + test = self.test + + src_f1 = fs.File('src/f1') + assert not src_f1.exists(), "%s apparently exists?" % src_f1 + + test.subdir('src') + test.write(['src', 'f1'], "src/f1\n") + + assert not src_f1.exists(), "%s did not cache previous exists() value" % src_f1 + src_f1.clear() + assert src_f1.exists(), "%s apparently does not exist?" % src_f1 + + test.subdir('build') + fs.BuildDir('build', 'src') + build_f1 = fs.File('build/f1') + + assert build_f1.exists(), "%s did not realize that %s exists" % (build_f1, src_f1) + assert os.path.exists(build_f1.abspath), "%s did not get duplicated on disk" % build_f1.abspath + + test.unlink(['src', 'f1']) + src_f1.clear() # so the next exists() call will look on disk again + + assert build_f1.exists(), "%s did not cache previous exists() value" % build_f1 + build_f1.clear() + build_f1.linked = None + assert not build_f1.exists(), "%s did not realize that %s disappeared" % (build_f1, src_f1) + assert not os.path.exists(build_f1.abspath), "%s did not get removed after %s was removed" % (build_f1, src_f1) + class RepositoryTestCase(_tempdirTestCase): |
