mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
Add raw_input() back, named input(). Revive the old unittests too.
This commit is contained in:
parent
e8ef4e1190
commit
a88a0331b7
2 changed files with 118 additions and 0 deletions
|
|
@ -664,6 +664,8 @@ class BuiltinTest(unittest.TestCase):
|
|||
id([0,1,2,3])
|
||||
id({'spam': 1, 'eggs': 2, 'ham': 3})
|
||||
|
||||
# Test input() later, alphabetized as if it were raw_input
|
||||
|
||||
def test_int(self):
|
||||
self.assertEqual(int(314), 314)
|
||||
self.assertEqual(int(3.14), 3)
|
||||
|
|
@ -1256,6 +1258,7 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertRaises(TypeError, oct, ())
|
||||
|
||||
def write_testfile(self):
|
||||
# NB the first 4 lines are also used to test input, below
|
||||
fp = open(TESTFN, 'w')
|
||||
try:
|
||||
fp.write('1+1\n')
|
||||
|
|
@ -1417,6 +1420,43 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertRaises(OverflowError, range, -sys.maxint, sys.maxint)
|
||||
self.assertRaises(OverflowError, range, 0, 2*sys.maxint)
|
||||
|
||||
def test_input(self):
|
||||
self.write_testfile()
|
||||
fp = open(TESTFN, 'r')
|
||||
savestdin = sys.stdin
|
||||
savestdout = sys.stdout # Eats the echo
|
||||
try:
|
||||
sys.stdin = fp
|
||||
sys.stdout = BitBucket()
|
||||
self.assertEqual(input(), "1+1")
|
||||
self.assertEqual(input('testing\n'), "1+1")
|
||||
self.assertEqual(input(), 'The quick brown fox jumps over the lazy dog.')
|
||||
self.assertEqual(input('testing\n'), 'Dear John')
|
||||
|
||||
# SF 1535165: don't segfault on closed stdin
|
||||
# sys.stdout must be a regular file for triggering
|
||||
sys.stdout = savestdout
|
||||
sys.stdin.close()
|
||||
self.assertRaises(ValueError, input)
|
||||
|
||||
sys.stdout = BitBucket()
|
||||
sys.stdin = cStringIO.StringIO("NULL\0")
|
||||
self.assertRaises(TypeError, input, 42, 42)
|
||||
sys.stdin = cStringIO.StringIO(" 'whitespace'")
|
||||
self.assertEqual(input(), " 'whitespace'")
|
||||
sys.stdin = cStringIO.StringIO()
|
||||
self.assertRaises(EOFError, input)
|
||||
|
||||
del sys.stdout
|
||||
self.assertRaises(RuntimeError, input, 'prompt')
|
||||
del sys.stdin
|
||||
self.assertRaises(RuntimeError, input, 'prompt')
|
||||
finally:
|
||||
sys.stdin = savestdin
|
||||
sys.stdout = savestdout
|
||||
fp.close()
|
||||
unlink(TESTFN)
|
||||
|
||||
def test_reload(self):
|
||||
import marshal
|
||||
reload(marshal)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue