diff options
author | Jon Bernard <jbernard@tuxion.com> | 2013-12-17 19:27:58 -0500 |
---|---|---|
committer | Jon Bernard <jbernard@tuxion.com> | 2013-12-17 19:27:58 -0500 |
commit | c5e6a9b5e53e98fc063a970dc7069559b32e40ce (patch) | |
tree | df6a4753bfc764b9aa26503e6c81f15e19ea1060 | |
parent | 3adefcc085f8cc4bdb3941927447d308bd301eb0 (diff) | |
download | dotfiles-c5e6a9b5e53e98fc063a970dc7069559b32e40ce.tar.gz dotfiles-c5e6a9b5e53e98fc063a970dc7069559b32e40ce.tar.bz2 dotfiles-c5e6a9b5e53e98fc063a970dc7069559b32e40ce.zip |
Add unit test for removing a dotfile with a missing target
If the remove operation is issued on a dotfile pointing to a target
that's already been removed from the repository, then the symlink should
just be removed quietly.
Re: #25
-rwxr-xr-x | test_dotfiles.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test_dotfiles.py b/test_dotfiles.py index 761496e..7d2605e 100755 --- a/test_dotfiles.py +++ b/test_dotfiles.py @@ -310,5 +310,26 @@ class DotfilesTestCase(unittest.TestCase): os.path.join(self.homedir, dotfile))) + def test_missing_remove(self): + """Test removing a dotfile that's been removed from the repository.""" + + repo_file = os.path.join(self.repository, 'testdotfile') + + touch(repo_file) + + dotfiles = core.Dotfiles( + homedir=self.homedir, repository=self.repository, + prefix='', ignore=[], externals={}, packages=[], + dry_run=False) + + dotfiles.sync() + + # remove the dotfile from the repository, homedir symlink is now broken + os.remove(repo_file) + + # remove the broken symlink + dotfiles.remove(['.testdotfile']) + + if __name__ == '__main__': unittest.main() |