Issue #18223: Refactor test_tarfile.
* Use mixins for generating tests for different compression types.
* Make test_tarfile discoverable.
* Use more special tests (i.e. assertEqual, assertIs) instead of assertTrue.
* Add explicit test skips instead of reporting skipped tests as passed.
* Wrap long lines.
* Correct a comment for test_hardlink_extraction1.
* Add support.requires_gzip.
* Replace ImportError by ModuleNotFoundError.
and some other minor enhancements.
diff --git a/Lib/test/support.py b/Lib/test/support.py
index be1c428..5b7cfc2 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -43,6 +43,11 @@
zlib = None
try:
+ import gzip
+except ModuleNotFoundError:
+ gzip = None
+
+try:
import bz2
except ModuleNotFoundError:
bz2 = None
@@ -71,7 +76,7 @@
"TestHandler", "Matcher", "can_symlink", "skip_unless_symlink",
"skip_unless_xattr", "import_fresh_module", "requires_zlib",
"PIPE_MAX_SIZE", "failfast", "anticipate_failure", "run_with_tz",
- "requires_bz2", "requires_lzma", "suppress_crash_popup",
+ "requires_gzip", "requires_bz2", "requires_lzma", "suppress_crash_popup",
]
class Error(Exception):
@@ -590,6 +595,8 @@
requires_zlib = unittest.skipUnless(zlib, 'requires zlib')
+requires_gzip = unittest.skipUnless(gzip, 'requires gzip')
+
requires_bz2 = unittest.skipUnless(bz2, 'requires bz2')
requires_lzma = unittest.skipUnless(lzma, 'requires lzma')