(self)
| 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>' |
nothing calls this directly
no test coverage detected