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

Method test_loader

Lib/test/test_linecache.py:259–306  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

257 self.assertEqual(linecache.getlines(FILENAME), lines)
258
259 def test_loader(self):
260 filename = 'scheme://path'
261
262 linecache.clearcache()
263 module_globals = {'__name__': 'a.b.c', '__loader__': None}
264 self.assertEqual(linecache.getlines(filename, module_globals), [])
265
266 for loader in object(), NoSourceLoader():
267 linecache.clearcache()
268 module_globals = {'__name__': 'a.b.c', '__loader__': loader}
269 with self.assertWarns(DeprecationWarning) as w:
270 self.assertEqual(linecache.getlines(filename, module_globals), [])
271 self.assertEqual(str(w.warning),
272 'Module globals is missing a __spec__.loader')
273
274 linecache.clearcache()
275 module_globals = {'__name__': 'a.b.c', '__loader__': FakeLoader()}
276 with self.assertWarns(DeprecationWarning) as w:
277 self.assertEqual(linecache.getlines(filename, module_globals),
278 ['source for a.b.c\n'])
279 self.assertEqual(str(w.warning),
280 'Module globals is missing a __spec__.loader')
281
282 for spec in None, object():
283 linecache.clearcache()
284 module_globals = {'__name__': 'a.b.c', '__loader__': FakeLoader(),
285 '__spec__': spec}
286 with self.assertWarns(DeprecationWarning) as w:
287 self.assertEqual(linecache.getlines(filename, module_globals),
288 ['source for a.b.c\n'])
289 self.assertEqual(str(w.warning),
290 'Module globals is missing a __spec__.loader')
291
292 linecache.clearcache()
293 module_globals = {'__name__': 'a.b.c', '__loader__': FakeLoader(),
294 '__spec__': ModuleSpec('', FakeLoader())}
295 with self.assertWarns(DeprecationWarning) as w:
296 self.assertEqual(linecache.getlines(filename, module_globals),
297 ['source for a.b.c\n'])
298 self.assertEqual(str(w.warning),
299 'Module globals; __loader__ != __spec__.loader')
300
301 linecache.clearcache()
302 spec = ModuleSpec('x.y.z', FakeLoader())
303 module_globals = {'__name__': 'a.b.c', '__loader__': spec.loader,
304 '__spec__': spec}
305 self.assertEqual(linecache.getlines(filename, module_globals),
306 ['source for x.y.z\n'])
307
308 def test_frozen(self):
309 filename = '<frozen fakemodule>'

Callers

nothing calls this directly

Calls 6

NoSourceLoaderClass · 0.85
strFunction · 0.85
FakeLoaderClass · 0.85
ModuleSpecClass · 0.85
assertWarnsMethod · 0.80
assertEqualMethod · 0.45

Tested by

no test coverage detected