Viewing file: test_pyinstaller.py (1.11 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import subprocess from pathlib import Path
import pytest
# PyInstaller has been very unproactive about replacing 'imp' with 'importlib'. @pytest.mark.filterwarnings('ignore::DeprecationWarning') # It also leaks io.BytesIO()s. @pytest.mark.filterwarnings('ignore::ResourceWarning') @pytest.mark.parametrize("mode", ["--onedir", "--onefile"]) @pytest.mark.slow def test_pyinstaller(mode, tmp_path): """Compile and run pyinstaller-smoke.py using PyInstaller."""
pyinstaller_cli = pytest.importorskip("PyInstaller.__main__").run
source = Path(__file__).with_name("pyinstaller-smoke.py").resolve() args = [ # Place all generated files in ``tmp_path``. '--workpath', str(tmp_path / "build"), '--distpath', str(tmp_path / "dist"), '--specpath', str(tmp_path), mode, str(source), ] pyinstaller_cli(args)
if mode == "--onefile": exe = tmp_path / "dist" / source.stem else: exe = tmp_path / "dist" / source.stem / source.stem
p = subprocess.run([str(exe)], check=True, stdout=subprocess.PIPE) assert p.stdout.strip() == b"I made it!"
|