diff options
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') |
