summaryrefslogtreecommitdiff
path: root/tests/test_utils.py
diff options
context:
space:
mode:
authorKiss György <kissgyorgy@me.com>2014-08-26 18:01:03 +0200
committerKiss György <kissgyorgy@me.com>2014-08-26 18:01:03 +0200
commit271a65165c17e803d2cd913abf725d4d78620fc5 (patch)
tree43cf7aa6093c811a490882c5aeb9d1ea8d0c315a /tests/test_utils.py
parent8aebc8b4164823b9c42db1701b5cd3453b3f530c (diff)
downloadclick-271a65165c17e803d2cd913abf725d4d78620fc5.tar.gz
Tests for prompt-stderr. click.pause() fails
Diffstat (limited to 'tests/test_utils.py')
-rw-r--r--tests/test_utils.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 7c9a394..237520d 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -151,6 +151,64 @@ def test_echo_color_flag(monkeypatch, capfd):
assert out == text + '\n'
+def test_echo_writing_to_standard_error(capfd, monkeypatch):
+ def emulate_input(text):
+ """Emulate keyboard input."""
+ if sys.version_info[0] == 2:
+ from StringIO import StringIO
+ else:
+ from io import StringIO
+ monkeypatch.setattr(sys, 'stdin', StringIO(text))
+
+ click.echo('Echo to standard output')
+ out, err = capfd.readouterr()
+ assert out == 'Echo to standard output\n'
+ assert err == ''
+
+ click.echo('Echo to standard error', err=True)
+ out, err = capfd.readouterr()
+ assert out == ''
+ assert err == 'Echo to standard error\n'
+
+ emulate_input('asdlkj\n')
+ click.prompt('Prompt to stdin')
+ out, err = capfd.readouterr()
+ assert out == 'Prompt to stdin: '
+ assert err == ''
+
+ emulate_input('asdlkj\n')
+ click.prompt('Prompt to stderr', err=True)
+ out, err = capfd.readouterr()
+ assert out == ''
+ assert err == 'Prompt to stderr: '
+
+ emulate_input('y\n')
+ click.confirm('Prompt to stdin')
+ out, err = capfd.readouterr()
+ assert out == 'Prompt to stdin [y/N]: '
+ assert err == ''
+
+ emulate_input('y\n')
+ click.confirm('Prompt to stderr', err=True)
+ out, err = capfd.readouterr()
+ assert out == ''
+ assert err == 'Prompt to stderr [y/N]: '
+
+ monkeypatch.setattr(click._compat, 'isatty', lambda x: True)
+
+ emulate_input(' ')
+ click.pause('Pause to stdin')
+ out, err = capfd.readouterr()
+ assert out == 'Pause to stdin'
+ assert err == ''
+
+ emulate_input(' ')
+ click.pause('Pause to stderr', err=True)
+ out, err = capfd.readouterr()
+ assert out == ''
+ assert err == 'Pause to stderr'
+
+
def test_open_file(runner):
with runner.isolated_filesystem():
with open('hello.txt', 'w') as f: