diff options
author | Eric Lin <anselor@gmail.com> | 2018-05-17 18:08:52 -0400 |
---|---|---|
committer | Eric Lin <anselor@gmail.com> | 2018-05-17 18:08:52 -0400 |
commit | ff89bad1b0dd2a608081db5a8fa299ef43d66bc5 (patch) | |
tree | 5b5ba5f355d4026e563af3491ee6758642833f10 /tests | |
parent | 371284d20370a8e85dd8527d9bbcc6267b335cde (diff) | |
download | cmd2-git-ff89bad1b0dd2a608081db5a8fa299ef43d66bc5.tar.gz |
Suppresses stdout and stderr output by default when calling an application command from pyscript.
Added support for tab completing application commands in ipython shell
Updated unit tests scripts to set cmd_echo to True to validate command output.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/pyscript/bar1.py | 1 | ||||
-rw-r--r-- | tests/pyscript/custom_echo.py | 2 | ||||
-rw-r--r-- | tests/pyscript/foo1.py | 1 | ||||
-rw-r--r-- | tests/pyscript/foo2.py | 1 | ||||
-rw-r--r-- | tests/pyscript/foo3.py | 1 | ||||
-rw-r--r-- | tests/pyscript/foo4.py | 1 | ||||
-rw-r--r-- | tests/pyscript/help.py | 3 | ||||
-rw-r--r-- | tests/pyscript/help_media.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_add1.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_add2.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list1.py | 3 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list2.py | 3 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list3.py | 3 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list4.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list5.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list6.py | 1 | ||||
-rw-r--r-- | tests/pyscript/media_movies_list7.py | 1 | ||||
-rw-r--r-- | tests/pyscript/pyscript_dir1.py | 3 | ||||
-rw-r--r-- | tests/pyscript/pyscript_dir2.py | 3 | ||||
-rw-r--r-- | tests/scripts/recursive.py | 1 | ||||
-rw-r--r-- | tests/test_pyscript.py | 36 |
21 files changed, 60 insertions, 9 deletions
diff --git a/tests/pyscript/bar1.py b/tests/pyscript/bar1.py index c6276a87..521e2c29 100644 --- a/tests/pyscript/bar1.py +++ b/tests/pyscript/bar1.py @@ -1 +1,2 @@ +app.cmd_echo = True app.bar('11', '22') diff --git a/tests/pyscript/custom_echo.py b/tests/pyscript/custom_echo.py new file mode 100644 index 00000000..14040e4c --- /dev/null +++ b/tests/pyscript/custom_echo.py @@ -0,0 +1,2 @@ +custom.cmd_echo = True +custom.echo('blah!') diff --git a/tests/pyscript/foo1.py b/tests/pyscript/foo1.py index 6e345d95..d9345354 100644 --- a/tests/pyscript/foo1.py +++ b/tests/pyscript/foo1.py @@ -1 +1,2 @@ +app.cmd_echo = True app.foo('aaa', 'bbb', counter=3, trueval=True, constval=True) diff --git a/tests/pyscript/foo2.py b/tests/pyscript/foo2.py index d4df7616..d3600a60 100644 --- a/tests/pyscript/foo2.py +++ b/tests/pyscript/foo2.py @@ -1 +1,2 @@ +app.cmd_echo = True app.foo('11', '22', '33', '44', counter=3, trueval=True, constval=True) diff --git a/tests/pyscript/foo3.py b/tests/pyscript/foo3.py index db69edaf..fc0e084a 100644 --- a/tests/pyscript/foo3.py +++ b/tests/pyscript/foo3.py @@ -1 +1,2 @@ +app.cmd_echo = True app.foo('11', '22', '33', '44', '55', '66', counter=3, trueval=False, constval=False) diff --git a/tests/pyscript/foo4.py b/tests/pyscript/foo4.py index 88fd3ce8..e4b7d01c 100644 --- a/tests/pyscript/foo4.py +++ b/tests/pyscript/foo4.py @@ -1,3 +1,4 @@ +app.cmd_echo = True result = app.foo('aaa', 'bbb', counter=3) out_text = 'Fail' if result: diff --git a/tests/pyscript/help.py b/tests/pyscript/help.py index 3f67793c..664c0488 100644 --- a/tests/pyscript/help.py +++ b/tests/pyscript/help.py @@ -1 +1,2 @@ -app.help()
\ No newline at end of file +app.cmd_echo = True +app.help() diff --git a/tests/pyscript/help_media.py b/tests/pyscript/help_media.py index 78025bdd..d8d97c42 100644 --- a/tests/pyscript/help_media.py +++ b/tests/pyscript/help_media.py @@ -1 +1,2 @@ +app.cmd_echo = True app.help('media') diff --git a/tests/pyscript/media_movies_add1.py b/tests/pyscript/media_movies_add1.py index a9139cb1..7249c0ef 100644 --- a/tests/pyscript/media_movies_add1.py +++ b/tests/pyscript/media_movies_add1.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.add('My Movie', 'PG-13', director=('George Lucas', 'J. J. Abrams')) diff --git a/tests/pyscript/media_movies_add2.py b/tests/pyscript/media_movies_add2.py index 5c4617ae..681095d7 100644 --- a/tests/pyscript/media_movies_add2.py +++ b/tests/pyscript/media_movies_add2.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.add('My Movie', 'PG-13', actor=('Mark Hamill'), director=('George Lucas', 'J. J. Abrams')) diff --git a/tests/pyscript/media_movies_list1.py b/tests/pyscript/media_movies_list1.py index 0124bbcb..edbc2021 100644 --- a/tests/pyscript/media_movies_list1.py +++ b/tests/pyscript/media_movies_list1.py @@ -1 +1,2 @@ -app.media.movies.list()
\ No newline at end of file +app.cmd_echo = True +app.media.movies.list() diff --git a/tests/pyscript/media_movies_list2.py b/tests/pyscript/media_movies_list2.py index 83f6c8ff..5ad01b7b 100644 --- a/tests/pyscript/media_movies_list2.py +++ b/tests/pyscript/media_movies_list2.py @@ -1 +1,2 @@ -app.media().movies().list()
\ No newline at end of file +app.cmd_echo = True +app.media().movies().list() diff --git a/tests/pyscript/media_movies_list3.py b/tests/pyscript/media_movies_list3.py index 4fcf1288..bdbdfceb 100644 --- a/tests/pyscript/media_movies_list3.py +++ b/tests/pyscript/media_movies_list3.py @@ -1 +1,2 @@ -app('media movies list')
\ No newline at end of file +app.cmd_echo = True +app('media movies list') diff --git a/tests/pyscript/media_movies_list4.py b/tests/pyscript/media_movies_list4.py index 1165b0c5..5f7bdaa9 100644 --- a/tests/pyscript/media_movies_list4.py +++ b/tests/pyscript/media_movies_list4.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.list(actor='Mark Hamill') diff --git a/tests/pyscript/media_movies_list5.py b/tests/pyscript/media_movies_list5.py index 962b1516..fa4efa5b 100644 --- a/tests/pyscript/media_movies_list5.py +++ b/tests/pyscript/media_movies_list5.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.list(actor=('Mark Hamill', 'Carrie Fisher')) diff --git a/tests/pyscript/media_movies_list6.py b/tests/pyscript/media_movies_list6.py index 5f8d3654..ef1851cd 100644 --- a/tests/pyscript/media_movies_list6.py +++ b/tests/pyscript/media_movies_list6.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.list(rating='PG') diff --git a/tests/pyscript/media_movies_list7.py b/tests/pyscript/media_movies_list7.py index bb0e28bb..7c827b7f 100644 --- a/tests/pyscript/media_movies_list7.py +++ b/tests/pyscript/media_movies_list7.py @@ -1 +1,2 @@ +app.cmd_echo = True app.media.movies.list(rating=('PG', 'PG-13')) diff --git a/tests/pyscript/pyscript_dir1.py b/tests/pyscript/pyscript_dir1.py new file mode 100644 index 00000000..14a70a31 --- /dev/null +++ b/tests/pyscript/pyscript_dir1.py @@ -0,0 +1,3 @@ +out = dir(app) +out.sort() +print(out) diff --git a/tests/pyscript/pyscript_dir2.py b/tests/pyscript/pyscript_dir2.py new file mode 100644 index 00000000..28c61c8e --- /dev/null +++ b/tests/pyscript/pyscript_dir2.py @@ -0,0 +1,3 @@ +out = dir(app.media) +out.sort() +print(out) diff --git a/tests/scripts/recursive.py b/tests/scripts/recursive.py index 32c981b6..4c29d317 100644 --- a/tests/scripts/recursive.py +++ b/tests/scripts/recursive.py @@ -3,4 +3,5 @@ """ Example demonstrating that running a Python script recursively inside another Python script isn't allowed """ +app.cmd_echo = True app('pyscript ../script.py') diff --git a/tests/test_pyscript.py b/tests/test_pyscript.py index 8d0cefd8..73c1a62a 100644 --- a/tests/test_pyscript.py +++ b/tests/test_pyscript.py @@ -101,7 +101,14 @@ class PyscriptExample(Cmd): @with_argparser(bar_parser) def do_bar(self, args): - print('bar ' + str(args.__dict__)) + out = 'bar ' + arg_dict = args.__dict__ + keys = list(arg_dict.keys()) + keys.sort() + out += '{' + for key in keys: + out += "'{}':'{}'".format(key, arg_dict[key]) + print(out) @pytest.fixture @@ -160,7 +167,7 @@ def test_pyscript_help(ps_app, capsys, request, command, pyscript_file): ('foo aaa bbb -ccc -t -n', 'foo1.py'), ('foo 11 22 33 44 -ccc -t -n', 'foo2.py'), ('foo 11 22 33 44 55 66 -ccc', 'foo3.py'), - ('bar 11 22', 'bar1.py') + ('bar 11 22', 'bar1.py'), ]) def test_pyscript_out(ps_app, capsys, request, command, pyscript_file): test_dir = os.path.dirname(request.module.__file__) @@ -204,11 +211,30 @@ def test_pyscript_results(ps_app, capsys, request, pyscript_file, exp_out): assert exp_out in expected -def test_pyscript_custom_name(ps_echo, capsys): +@pytest.mark.parametrize('expected, pyscript_file', [ + ("['_relative_load', 'alias', 'bar', 'cmd_echo', 'edit', 'eof', 'eos', 'foo', 'help', 'history', 'load', 'media', 'py', 'pyscript', 'quit', 'set', 'shell', 'shortcuts', 'unalias']", + 'pyscript_dir1.py'), + ("['movies', 'shows']", 'pyscript_dir2.py') +]) +def test_pyscript_dir(ps_app, capsys, request, expected, pyscript_file): + test_dir = os.path.dirname(request.module.__file__) + python_script = os.path.join(test_dir, 'pyscript', pyscript_file) + + run_cmd(ps_app, 'pyscript {}'.format(python_script)) + out, _ = capsys.readouterr() + out = out.strip() + assert len(out) > 0 + assert out == expected + + +def test_pyscript_custom_name(ps_echo, capsys, request): message = 'blah!' - run_cmd(ps_echo, 'py custom.echo("{}")'.format(message)) + + test_dir = os.path.dirname(request.module.__file__) + python_script = os.path.join(test_dir, 'pyscript', 'custom_echo.py') + + run_cmd(ps_echo, 'pyscript {}'.format(python_script)) expected, _ = capsys.readouterr() assert len(expected) > 0 expected = expected.splitlines() assert message == expected[0] - |