diff options
| author | jpic <jamespic@gmail.com> | 2016-12-13 01:36:08 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-12-21 17:05:33 -0500 |
| commit | bf6392bb7565c21f01ed6f682b8558dcf1cc8070 (patch) | |
| tree | 0f124dcbf4c9eb3e10c07415e93aae7478f3fdc1 /tests/shell | |
| parent | 24fa728a476a6da3e565dbe33959ea62c02c250b (diff) | |
Fixed #27600 -- Suppressed the REPL during shell's reading from stdin.
Thanks Adam Chainz for review and guidance.
Diffstat (limited to 'tests/shell')
| -rw-r--r-- | tests/shell/tests.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tests/shell/tests.py b/tests/shell/tests.py index 7285c968a2..11f1826d30 100644 --- a/tests/shell/tests.py +++ b/tests/shell/tests.py @@ -1,7 +1,10 @@ +import sys +import unittest + from django import __version__ from django.core.management import call_command -from django.test import SimpleTestCase -from django.test.utils import patch_logger +from django.test import SimpleTestCase, mock +from django.test.utils import captured_stdin, captured_stdout, patch_logger class ShellCommandTestCase(SimpleTestCase): @@ -17,3 +20,12 @@ class ShellCommandTestCase(SimpleTestCase): ) self.assertEqual(len(logger), 1) self.assertEqual(logger[0], __version__) + + @unittest.skipIf(sys.platform == 'win32', "Windows select() doesn't support file descriptors.") + @mock.patch('django.core.management.commands.shell.select') + def test_stdin_read(self, select): + with captured_stdin() as stdin, captured_stdout() as stdout: + stdin.write('print(100)\n') + stdin.seek(0) + call_command('shell') + self.assertEqual(stdout.getvalue().strip(), '100') |
