summaryrefslogtreecommitdiff
path: root/tests/shell
diff options
context:
space:
mode:
authorjpic <jamespic@gmail.com>2016-12-13 01:36:08 +0100
committerTim Graham <timograham@gmail.com>2016-12-21 17:05:33 -0500
commitbf6392bb7565c21f01ed6f682b8558dcf1cc8070 (patch)
tree0f124dcbf4c9eb3e10c07415e93aae7478f3fdc1 /tests/shell
parent24fa728a476a6da3e565dbe33959ea62c02c250b (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.py16
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')