done
This commit is contained in:
@ -0,0 +1,35 @@
|
||||
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!"
|
Reference in New Issue
Block a user