aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py b/.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py
new file mode 100644
index 00000000..a9061da1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/_pyinstaller/test_pyinstaller.py
@@ -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!"