diff options
Diffstat (limited to 'tests/test_dotfile.py')
-rw-r--r-- | tests/test_dotfile.py | 130 |
1 files changed, 66 insertions, 64 deletions
diff --git a/tests/test_dotfile.py b/tests/test_dotfile.py index 29908ba..1af1d8e 100644 --- a/tests/test_dotfile.py +++ b/tests/test_dotfile.py @@ -1,7 +1,69 @@ import pytest import py.error -from dotfiles.dotfile import Dotfile +from dotfiles.dotfile import Dotfile, unique_suffix + + +def test_unique_suffix_overlap(): + (name, target) = unique_suffix(py.path.local('/foo/baz'), + py.path.local('/foo/bar/bat')) + assert 'baz' == name + assert 'bar/bat' == target + + +@pytest.mark.xfail(reason='this is a bug') +def test_unique_suffix_no_overlap(): + (name, target) = unique_suffix(py.path.local('/a/b/c'), + py.path.local('/d/e/f')) + assert '/a/b/c' == name + assert '/d/e/f' == target + + +def test_state_error(tmpdir): + + repo = tmpdir.ensure("Dotfiles", dir=1) + name = tmpdir.join(".vimrc") + target = repo.join("vimrc") + + dotfile = Dotfile(name, target) + + assert 'error' == dotfile.state + + +def test_state_missing(tmpdir): + + repo = tmpdir.ensure("Dotfiles", dir=1) + name = tmpdir.join(".vimrc") + target = repo.ensure("vimrc") + + dotfile = Dotfile(name, target) + + assert 'missing' == dotfile.state + + +def test_state_conflict(tmpdir): + + repo = tmpdir.ensure("Dotfiles", dir=1) + name = tmpdir.ensure(".vimrc") + target = repo.ensure("vimrc") + + dotfile = Dotfile(name, target) + + assert 'conflict' == dotfile.state + + +def test_state_ok(tmpdir): + + repo = tmpdir.join("Dotfiles", dir=1) + name = tmpdir.join(".vimrc") + target = repo.ensure("vimrc") + dotfile = Dotfile(name, target) + + name.mksymlinkto(target) + assert 'ok' == dotfile.state + + name.remove() + assert 'missing' == dotfile.state @pytest.mark.parametrize("times", range(1, 4)) @@ -21,7 +83,6 @@ def test_add(tmpdir, times): for x in range(2, times): with pytest.raises(OSError): dotfile.add() - assert target.check(file=1, link=0) assert name.check(file=1, link=1) assert name.samefile(target) @@ -45,7 +106,6 @@ def test_remove(tmpdir, times): for x in range(2, times): with pytest.raises(OSError): dotfile.remove() - assert False == target.check() assert name.check(file=1, link=0) @@ -67,69 +127,11 @@ def test_sync(tmpdir, times): for x in range(2, times): with pytest.raises(py.error.EEXIST): dotfile.sync() - assert target.check(file=1, link=0) assert name.check(file=1, link=1) assert name.samefile(target) -def test_state_error(tmpdir): - - repo = tmpdir.ensure("Dotfiles", dir=1) - name = tmpdir.join(".vimrc") - target = repo.join("vimrc") - - dotfile = Dotfile(name, target) - - assert Dotfile.states['error'] == dotfile.state - - -def test_state_missing(tmpdir): - - repo = tmpdir.ensure("Dotfiles", dir=1) - name = tmpdir.join(".vimrc") - target = repo.ensure("vimrc") - - dotfile = Dotfile(name, target) - - assert Dotfile.states['missing'] == dotfile.state - - -def test_state_conflict(tmpdir): - - repo = tmpdir.ensure("Dotfiles", dir=1) - name = tmpdir.ensure(".vimrc") - target = repo.ensure("vimrc") - - dotfile = Dotfile(name, target) - - assert Dotfile.states['conflict'] == dotfile.state - - -def test_state_ok(tmpdir): - - repo = tmpdir.join("Dotfiles", dir=1) - name = tmpdir.join(".vimrc") - target = repo.ensure("vimrc") - - name.mksymlinkto(target) - - dotfile = Dotfile(name, target) - - assert Dotfile.states['ok'] == dotfile.state - - -def test_is_ok(tmpdir): - - repo = tmpdir.join("Dotfiles", dir=1) - name = tmpdir.join(".vimrc") - target = repo.ensure("vimrc") - name.mksymlinkto(target) - - dotfile = Dotfile(name, target) - - assert Dotfile.states['ok'] == dotfile.state - assert True == dotfile.is_ok() - - dotfile.state = Dotfile.states['conflict'] - assert False == dotfile.is_ok() +@pytest.mark.xfail(reason='not implemented yet') +def test_unsync(): + raise NotImplementedError |