summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEric Lin <anselor@gmail.com>2018-05-17 18:08:52 -0400
committerEric Lin <anselor@gmail.com>2018-05-17 18:08:52 -0400
commitff89bad1b0dd2a608081db5a8fa299ef43d66bc5 (patch)
tree5b5ba5f355d4026e563af3491ee6758642833f10 /tests
parent371284d20370a8e85dd8527d9bbcc6267b335cde (diff)
downloadcmd2-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.py1
-rw-r--r--tests/pyscript/custom_echo.py2
-rw-r--r--tests/pyscript/foo1.py1
-rw-r--r--tests/pyscript/foo2.py1
-rw-r--r--tests/pyscript/foo3.py1
-rw-r--r--tests/pyscript/foo4.py1
-rw-r--r--tests/pyscript/help.py3
-rw-r--r--tests/pyscript/help_media.py1
-rw-r--r--tests/pyscript/media_movies_add1.py1
-rw-r--r--tests/pyscript/media_movies_add2.py1
-rw-r--r--tests/pyscript/media_movies_list1.py3
-rw-r--r--tests/pyscript/media_movies_list2.py3
-rw-r--r--tests/pyscript/media_movies_list3.py3
-rw-r--r--tests/pyscript/media_movies_list4.py1
-rw-r--r--tests/pyscript/media_movies_list5.py1
-rw-r--r--tests/pyscript/media_movies_list6.py1
-rw-r--r--tests/pyscript/media_movies_list7.py1
-rw-r--r--tests/pyscript/pyscript_dir1.py3
-rw-r--r--tests/pyscript/pyscript_dir2.py3
-rw-r--r--tests/scripts/recursive.py1
-rw-r--r--tests/test_pyscript.py36
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]
-