diff options
author | Jon Bernard <jbernard@tuxion.com> | 2016-01-17 06:29:44 -0500 |
---|---|---|
committer | Jon Bernard <jbernard@tuxion.com> | 2016-01-17 06:48:44 -0500 |
commit | 12f4b315161a0f398b1681b0abfc6f30cbd61f59 (patch) | |
tree | fc3910dcb67739de660cb710e2f3e43f85f50885 /tests/test_dotfile.py | |
parent | e570a42cb65d2f3c83c3beaf3c7fd6a07338a9fa (diff) | |
download | dotfiles-12f4b315161a0f398b1681b0abfc6f30cbd61f59.tar.gz dotfiles-12f4b315161a0f398b1681b0abfc6f30cbd61f59.tar.bz2 dotfiles-12f4b315161a0f398b1681b0abfc6f30cbd61f59.zip |
Split tests into separate files
Diffstat (limited to 'tests/test_dotfile.py')
-rw-r--r-- | tests/test_dotfile.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/test_dotfile.py b/tests/test_dotfile.py new file mode 100644 index 0000000..0e09654 --- /dev/null +++ b/tests/test_dotfile.py @@ -0,0 +1,89 @@ +import pytest + +from dotfiles.dotfile import Dotfile +from dotfiles.exceptions import IsSymlink + + +class TestDotfile(object): + + def test_state_error(self, repo, home): + dotfile = Dotfile(home.join('.vimrc'), repo.join('vimrc')) + assert dotfile.state == 'error' + + def test_state_missing(self, repo, home): + dotfile = Dotfile(home.join('.vimrc'), repo.ensure('vimrc')) + assert dotfile.state == 'missing' + + def test_state_conflict(self, repo, home): + dotfile = Dotfile(home.ensure('.vimrc'), repo.ensure('vimrc')) + assert dotfile.state == 'conflict' + + def test_state_ok(self, repo, home): + name = home.join('.vimrc') + target = repo.ensure('vimrc') + + dotfile = Dotfile(name, target) + name.mksymlinkto(target) + assert dotfile.state == 'ok' + + name.remove() + assert dotfile.state == 'missing' + + @pytest.mark.parametrize('times', range(1, 4)) + def test_add(self, repo, home, times): + name = home.ensure('.vimrc') + target = repo.join('vimrc') + + Dotfile(name, target).add() + + assert target.check(file=1, link=0) + assert name.check(file=1, link=1) + assert name.samefile(target) + + for x in range(2, times): + with pytest.raises(IsSymlink): + Dotfile(name, target).add() + assert target.check(file=1, link=0) + assert name.check(file=1, link=1) + assert name.samefile(target) + + @pytest.mark.parametrize('times', range(1, 4)) + def test_remove(self, repo, home, times): + name = home.join('.vimrc') + target = repo.ensure('vimrc') + + name.mksymlinkto(target) + Dotfile(name, target).remove() + + assert not target.check() + assert name.check(file=1, link=0) + + for x in range(2, times): + with pytest.raises(Exception): + # TODO: verify exception type once those exists + Dotfile(name, target).remove() + assert not target.check() + assert name.check(file=1, link=0) + + @pytest.mark.parametrize('times', range(1, 4)) + def test_link(self, repo, home, times): + name = home.join('.vimrc') + target = repo.ensure('vimrc') + + Dotfile(name, target).link() + + assert target.check(file=1, link=0) + assert name.check(file=1, link=1) + assert name.samefile(target) + + for x in range(2, times): + with pytest.raises(Exception): + # TODO: verify exception type once those exists + Dotfile(name, target).link() + assert target.check(file=1, link=0) + assert name.check(file=1, link=1) + assert name.samefile(target) + + @pytest.mark.xfail(reason='TODO') + def test_unlink(self): + assert False |