mirror of
https://github.com/samsonjs/vdirsyncer.git
synced 2026-03-25 08:55:50 +00:00
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from textwrap import dedent
|
|
|
|
|
|
def test_get_password_from_command(tmpdir, runner):
|
|
runner.write_with_general(
|
|
dedent(
|
|
"""
|
|
[pair foobar]
|
|
a = "foo"
|
|
b = "bar"
|
|
collections = ["a", "b", "c"]
|
|
|
|
[storage foo]
|
|
type = "filesystem"
|
|
path = "{base}/foo/"
|
|
fileext.fetch = ["command", "echo", ".txt"]
|
|
|
|
[storage bar]
|
|
type = "filesystem"
|
|
path = "{base}/bar/"
|
|
fileext.fetch = ["prompt", "Fileext for bar"]
|
|
""".format(
|
|
base=str(tmpdir)
|
|
)
|
|
)
|
|
)
|
|
|
|
foo = tmpdir.ensure("foo", dir=True)
|
|
foo.ensure("a", dir=True)
|
|
foo.ensure("b", dir=True)
|
|
foo.ensure("c", dir=True)
|
|
bar = tmpdir.ensure("bar", dir=True)
|
|
bar.ensure("a", dir=True)
|
|
bar.ensure("b", dir=True)
|
|
bar.ensure("c", dir=True)
|
|
|
|
result = runner.invoke(["discover"], input=".asdf\n")
|
|
assert not result.exception
|
|
status = tmpdir.join("status").join("foobar.collections").read()
|
|
assert "foo" in status
|
|
assert "bar" in status
|
|
assert "asdf" not in status
|
|
assert "txt" not in status
|
|
|
|
foo.join("a").join("foo.txt").write("BEGIN:VCARD\nUID:foo\nEND:VCARD")
|
|
result = runner.invoke(["sync"], input=".asdf\n")
|
|
assert not result.exception
|
|
assert [x.basename for x in bar.join("a").listdir()] == ["foo.asdf"]
|