aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_dotfile.py130
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