MCPcopy Index your code
hub / github.com/python/cpython / test_buffer_sizes

Method test_buffer_sizes

Lib/test/test_fileinput.py:87–167  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

85
86class BufferSizesTests(BaseTests, unittest.TestCase):
87 def test_buffer_sizes(self):
88
89 t1 = self.writeTmp(''.join("Line %s of file 1\n" % (i+1) for i in range(15)))
90 t2 = self.writeTmp(''.join("Line %s of file 2\n" % (i+1) for i in range(10)))
91 t3 = self.writeTmp(''.join("Line %s of file 3\n" % (i+1) for i in range(5)))
92 t4 = self.writeTmp(''.join("Line %s of file 4\n" % (i+1) for i in range(1)))
93
94 pat = re.compile(r'LINE (\d+) OF FILE (\d+)')
95
96 if verbose:
97 print('1. Simple iteration')
98 fi = FileInput(files=(t1, t2, t3, t4), encoding="utf-8")
99 lines = list(fi)
100 fi.close()
101 self.assertEqual(len(lines), 31)
102 self.assertEqual(lines[4], 'Line 5 of file 1\n')
103 self.assertEqual(lines[30], 'Line 1 of file 4\n')
104 self.assertEqual(fi.lineno(), 31)
105 self.assertEqual(fi.filename(), t4)
106
107 if verbose:
108 print('2. Status variables')
109 fi = FileInput(files=(t1, t2, t3, t4), encoding="utf-8")
110 s = "x"
111 while s and s != 'Line 6 of file 2\n':
112 s = fi.readline()
113 self.assertEqual(fi.filename(), t2)
114 self.assertEqual(fi.lineno(), 21)
115 self.assertEqual(fi.filelineno(), 6)
116 self.assertFalse(fi.isfirstline())
117 self.assertFalse(fi.isstdin())
118
119 if verbose:
120 print('3. Nextfile')
121 fi.nextfile()
122 self.assertEqual(fi.readline(), 'Line 1 of file 3\n')
123 self.assertEqual(fi.lineno(), 22)
124 fi.close()
125
126 if verbose:
127 print('4. Stdin')
128 fi = FileInput(files=(t1, t2, t3, t4, '-'), encoding="utf-8")
129 savestdin = sys.stdin
130 try:
131 sys.stdin = StringIO("Line 1 of stdin\nLine 2 of stdin\n")
132 lines = list(fi)
133 self.assertEqual(len(lines), 33)
134 self.assertEqual(lines[32], 'Line 2 of stdin\n')
135 self.assertEqual(fi.filename(), '<stdin>')
136 fi.nextfile()
137 finally:
138 sys.stdin = savestdin
139
140 if verbose:
141 print('5. Boundary conditions')
142 fi = FileInput(files=(t1, t2, t3, t4), encoding="utf-8")
143 self.assertEqual(fi.lineno(), 0)
144 self.assertEqual(fi.filename(), None)

Callers

nothing calls this directly

Calls 15

closeMethod · 0.95
linenoMethod · 0.95
filenameMethod · 0.95
readlineMethod · 0.95
filelinenoMethod · 0.95
isfirstlineMethod · 0.95
isstdinMethod · 0.95
nextfileMethod · 0.95
FileInputClass · 0.90
StringIOClass · 0.90
listClass · 0.85
writeTmpMethod · 0.80

Tested by

no test coverage detected