mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #27600 -- Suppressed the REPL during shell's reading from stdin.
Thanks Adam Chainz for review and guidance.
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user