1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """
- Test conda-package-handling can work in `.tar.bz2`-only mode if zstandard is not
- available. (Giving the user a chance to immediately install zstandard.)
- """
- import importlib
- import subprocess
- import sys
- def test_degraded():
- try:
- sys.modules["zstandard"] = None # type: ignore
- sys.modules["conda_package_streaming.transmute"] = None # type: ignore
- sys.modules["conda_package_handling.conda_fmt"] = None # type: ignore
- # this is only testing conda_package_handling's code, and does not test
- # that conda_package_streaming works without zstandard.
- import conda_package_handling.api
- importlib.reload(conda_package_handling.api)
- assert conda_package_handling.api.libarchive_enabled is False
- finally:
- sys.modules.pop("zstandard", None)
- sys.modules.pop("conda_package_handling.conda_fmt", None)
- sys.modules.pop("conda_package_streaming.transmute", None)
- import conda_package_handling.api
- importlib.reload(conda_package_handling.api)
- assert conda_package_handling.api.libarchive_enabled is True
- def test_degraded_subprocess():
- """
- More reliable way to mock 'zstandard not available'
- """
- subprocess.check_call(
- [
- sys.executable,
- "-c",
- "import sys; sys.modules['zstandard'] = None; import conda_package_handling.api",
- ]
- )
|