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

Method do_test

Lib/test/test_io/test_general.py:216–265  ·  view source on GitHub ↗
(test, obj, abilities)

Source from the content-addressed store, hash-verified

214 )
215
216 def do_test(test, obj, abilities):
217 readable = "r" in abilities
218 self.assertEqual(obj.readable(), readable)
219 writable = "w" in abilities
220 self.assertEqual(obj.writable(), writable)
221
222 if isinstance(obj, self.TextIOBase):
223 data = "3"
224 elif isinstance(obj, (self.BufferedIOBase, self.RawIOBase)):
225 data = b"3"
226 else:
227 self.fail("Unknown base class")
228
229 if "f" in abilities:
230 obj.fileno()
231 else:
232 self.assertRaises(OSError, obj.fileno)
233
234 if readable:
235 obj.read(1)
236 obj.read()
237 else:
238 self.assertRaises(OSError, obj.read, 1)
239 self.assertRaises(OSError, obj.read)
240
241 if writable:
242 obj.write(data)
243 else:
244 self.assertRaises(OSError, obj.write, data)
245
246 if sys.platform.startswith("win") and test in (
247 pipe_reader, pipe_writer):
248 # Pipes seem to appear as seekable on Windows
249 return
250 seekable = "s" in abilities
251 self.assertEqual(obj.seekable(), seekable)
252
253 if seekable:
254 obj.tell()
255 obj.seek(0)
256 else:
257 self.assertRaises(OSError, obj.tell)
258 self.assertRaises(OSError, obj.seek, 0)
259
260 if writable and seekable:
261 obj.truncate()
262 obj.truncate(0)
263 else:
264 self.assertRaises(OSError, obj.truncate)
265 self.assertRaises(OSError, obj.truncate, 0)
266
267 for [test, abilities] in tests:
268 with self.subTest(test):

Callers

nothing calls this directly

Calls 13

assertEqualMethod · 0.45
readableMethod · 0.45
writableMethod · 0.45
failMethod · 0.45
filenoMethod · 0.45
assertRaisesMethod · 0.45
readMethod · 0.45
writeMethod · 0.45
startswithMethod · 0.45
seekableMethod · 0.45
tellMethod · 0.45
seekMethod · 0.45

Tested by

no test coverage detected