@@ -450,8 +450,9 @@ def testZipImporterMethods(self):
450
450
451
451
zi = zipimport.zipimporter(TEMP_ZIP)
452
452
self.assertEqual(zi.archive, TEMP_ZIP)
453
-
self.assertEqual(zi.is_package(TESTPACK), True)
453
+
self.assertTrue(zi.is_package(TESTPACK))
454
454
455
+
# PEP 302
455
456
find_mod = zi.find_module('spam')
456
457
self.assertIsNotNone(find_mod)
457
458
self.assertIsInstance(find_mod, zipimport.zipimporter)
@@ -462,25 +463,39 @@ def testZipImporterMethods(self):
462
463
mod = zi.load_module(TESTPACK)
463
464
self.assertEqual(zi.get_filename(TESTPACK), mod.__file__)
464
465
466
+
# PEP 451
467
+
spec = zi.find_spec('spam')
468
+
self.assertIsNotNone(spec)
469
+
self.assertIsInstance(spec.loader, zipimport.zipimporter)
470
+
self.assertFalse(spec.loader.is_package('spam'))
471
+
exec_mod = importlib.util.module_from_spec(spec)
472
+
spec.loader.exec_module(exec_mod)
473
+
self.assertEqual(spec.loader.get_filename('spam'), exec_mod.__file__)
474
+
475
+
spec = zi.find_spec(TESTPACK)
476
+
mod = importlib.util.module_from_spec(spec)
477
+
spec.loader.exec_module(mod)
478
+
self.assertEqual(zi.get_filename(TESTPACK), mod.__file__)
479
+
465
480
existing_pack_path = importlib.import_module(TESTPACK).__path__[0]
466
481
expected_path_path = os.path.join(TEMP_ZIP, TESTPACK)
467
482
self.assertEqual(existing_pack_path, expected_path_path)
468
483
469
-
self.assertEqual(zi.is_package(packdir + '__init__'), False)
470
-
self.assertEqual(zi.is_package(packdir + TESTPACK2), True)
471
-
self.assertEqual(zi.is_package(packdir2 + TESTMOD), False)
484
+
self.assertFalse(zi.is_package(packdir + '__init__'))
485
+
self.assertTrue(zi.is_package(packdir + TESTPACK2))
486
+
self.assertFalse(zi.is_package(packdir2 + TESTMOD))
472
487
473
488
mod_path = packdir2 + TESTMOD
474
489
mod_name = module_path_to_dotted_name(mod_path)
475
490
mod = importlib.import_module(mod_name)
476
491
self.assertTrue(mod_name in sys.modules)
477
-
self.assertEqual(zi.get_source(TESTPACK), None)
478
-
self.assertEqual(zi.get_source(mod_path), None)
492
+
self.assertIsNone(zi.get_source(TESTPACK))
493
+
self.assertIsNone(zi.get_source(mod_path))
479
494
self.assertEqual(zi.get_filename(mod_path), mod.__file__)
480
495
# To pass in the module name instead of the path, we must use the
481
496
# right importer
482
-
loader = mod.__loader__
483
-
self.assertEqual(loader.get_source(mod_name), None)
497
+
loader = mod.__spec__.loader
498
+
self.assertIsNone(loader.get_source(mod_name))
484
499
self.assertEqual(loader.get_filename(mod_name), mod.__file__)
485
500
486
501
# test prefix and archivepath members
@@ -505,17 +520,22 @@ def testZipImporterMethodsInSubDirectory(self):
505
520
zi = zipimport.zipimporter(TEMP_ZIP + os.sep + packdir)
506
521
self.assertEqual(zi.archive, TEMP_ZIP)
507
522
self.assertEqual(zi.prefix, packdir)
508
-
self.assertEqual(zi.is_package(TESTPACK2), True)
523
+
self.assertTrue(zi.is_package(TESTPACK2))
524
+
# PEP 302
509
525
mod = zi.load_module(TESTPACK2)
510
526
self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__)
527
+
# PEP 451
528
+
spec = zi.find_spec(TESTPACK2)
529
+
mod = importlib.util.module_from_spec(spec)
530
+
spec.loader.exec_module(mod)
531
+
self.assertEqual(spec.loader.get_filename(TESTPACK2), mod.__file__)
511
532
512
-
self.assertEqual(
513
-
zi.is_package(TESTPACK2 + os.sep + '__init__'), False)
514
-
self.assertEqual(
515
-
zi.is_package(TESTPACK2 + os.sep + TESTMOD), False)
533
+
self.assertFalse(zi.is_package(TESTPACK2 + os.sep + '__init__'))
534
+
self.assertFalse(zi.is_package(TESTPACK2 + os.sep + TESTMOD))
516
535
517
536
pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2
518
537
zi2 = zipimport.zipimporter(pkg_path)
538
+
# PEP 302
519
539
find_mod_dotted = zi2.find_module(TESTMOD)
520
540
self.assertIsNotNone(find_mod_dotted)
521
541
self.assertIsInstance(find_mod_dotted, zipimport.zipimporter)
@@ -524,17 +544,27 @@ def testZipImporterMethodsInSubDirectory(self):
524
544
self.assertEqual(
525
545
find_mod_dotted.get_filename(TESTMOD), load_mod.__file__)
526
546
547
+
# PEP 451
548
+
spec = zi2.find_spec(TESTMOD)
549
+
self.assertIsNotNone(spec)
550
+
self.assertIsInstance(spec.loader, zipimport.zipimporter)
551
+
self.assertFalse(spec.loader.is_package(TESTMOD))
552
+
load_mod = importlib.util.module_from_spec(spec)
553
+
spec.loader.exec_module(load_mod)
554
+
self.assertEqual(
555
+
spec.loader.get_filename(TESTMOD), load_mod.__file__)
556
+
527
557
mod_path = TESTPACK2 + os.sep + TESTMOD
528
558
mod_name = module_path_to_dotted_name(mod_path)
529
559
mod = importlib.import_module(mod_name)
530
560
self.assertTrue(mod_name in sys.modules)
531
-
self.assertEqual(zi.get_source(TESTPACK2), None)
532
-
self.assertEqual(zi.get_source(mod_path), None)
561
+
self.assertIsNone(zi.get_source(TESTPACK2))
562
+
self.assertIsNone(zi.get_source(mod_path))
533
563
self.assertEqual(zi.get_filename(mod_path), mod.__file__)
534
564
# To pass in the module name instead of the path, we must use the
535
565
# right importer.
536
566
loader = mod.__loader__
537
-
self.assertEqual(loader.get_source(mod_name), None)
567
+
self.assertIsNone(loader.get_source(mod_name))
538
568
self.assertEqual(loader.get_filename(mod_name), mod.__file__)
539
569
540
570
def testGetData(self):
@@ -655,7 +685,9 @@ def testUnencodable(self):
655
685
zinfo = ZipInfo(TESTMOD + ".py", time.localtime(NOW))
656
686
zinfo.compress_type = self.compression
657
687
z.writestr(zinfo, test_src)
658
-
zipimport.zipimporter(filename).load_module(TESTMOD)
688
+
spec = zipimport.zipimporter(filename).find_spec(TESTMOD)
689
+
mod = importlib.util.module_from_spec(spec)
690
+
spec.loader.exec_module(mod)
659
691
660
692
def testBytesPath(self):
661
693
filename = os_helper.TESTFN + ".zip"
@@ -747,14 +779,17 @@ def _testBogusZipFile(self):
747
779
748
780
try:
749
781
self.assertRaises(TypeError, z.find_module, None)
782
+
self.assertRaises(TypeError, z.find_spec, None)
783
+
self.assertRaises(TypeError, z.exec_module, None)
750
784
self.assertRaises(TypeError, z.load_module, None)
751
785
self.assertRaises(TypeError, z.is_package, None)
752
786
self.assertRaises(TypeError, z.get_code, None)
753
787
self.assertRaises(TypeError, z.get_data, None)
754
788
self.assertRaises(TypeError, z.get_source, None)
755
789
756
790
error = zipimport.ZipImportError
757
-
self.assertEqual(z.find_module('abc'), None)
791
+
self.assertIsNone(z.find_module('abc'))
792
+
self.assertIsNone(z.find_spec('abc'))
758
793
759
794
self.assertRaises(error, z.load_module, 'abc')
760
795
self.assertRaises(error, z.get_code, 'abc')
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4