From f216646d2e824af726a7cd0d4d881577ea6dd0d8 Mon Sep 17 00:00:00 2001 From: Jon Bernard Date: Sun, 3 Jan 2016 22:37:49 -0500 Subject: Add cli tests --- dotfiles.py | 4 ++-- test_dotfiles.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/dotfiles.py b/dotfiles.py index f3bba1f..ce0d31a 100644 --- a/dotfiles.py +++ b/dotfiles.py @@ -175,7 +175,7 @@ def remove(repo, files): @cli.command() @click.option('-c', '--color', is_flag=True, help='Enable color.') -@click.option('-s', '--short', is_flag=True, help='Terse output.') +@click.option('-s', '--short', is_flag=True, help='Show terse output.') @pass_repo def status(repo, color, short): """Show all dotifles in a non-ok state.""" @@ -187,7 +187,7 @@ def status(repo, color, short): } if not short: - raise NotImplementedError('long output, use --short for now') + click.echo('long output not yet implemeted, using --short for now') dotfiles = repo.contents() for dotfile in dotfiles: diff --git a/test_dotfiles.py b/test_dotfiles.py index cea1446..371b66e 100644 --- a/test_dotfiles.py +++ b/test_dotfiles.py @@ -1,6 +1,7 @@ import py import pytest +from dotfiles import __version__ from dotfiles import cli, unique_suffix from dotfiles import Repository, Dotfile @@ -29,6 +30,41 @@ class TestCli(object): assert not result.exception assert result.output == '[no dotfiles found]\n' + def test_list(self, runner, repo, home): + repo.ensure('foo') + repo.ensure('bar') + repo.ensure('baz') + result = runner.invoke(cli, ['--home-directory', str(home), + '--repository', str(repo), + 'list']) + assert not result.exception + assert result.output == ('.bar\n' + '.baz\n' + '.foo\n') + + def test_list_verbose(self, runner, repo, home): + repo.ensure('baz') + repo.ensure('foo') + home.ensure('.foo') + home.join('.bar').mksymlinkto(repo.ensure('bar')) + + result = runner.invoke(cli, ['--home-directory', str(home), + '--repository', str(repo), + 'list', '--verbose']) + assert not result.exception + assert result.output == ( + '.bar (ok)\n' + '.baz (missing)\n' + '.foo (conflict)\n') + + def test_staus(self): + pass + + def test_version(self, runner): + result = runner.invoke(cli, ['version']) + assert not result.exception + assert result.output == 'dotfiles version %s\n' % __version__ + class TestRepository(object): -- cgit v1.2.3