| """ Test scripts
|
|
|
| Test that we can run executable scripts that have been installed with numpy.
|
| """
|
| import sys
|
| import os
|
| import pytest
|
| from os.path import join as pathjoin, isfile, dirname
|
| import subprocess
|
|
|
| import numpy as np
|
| from numpy.testing import assert_equal, IS_WASM
|
|
|
| is_inplace = isfile(pathjoin(dirname(np.__file__), '..', 'setup.py'))
|
|
|
|
|
| def find_f2py_commands():
|
| if sys.platform == 'win32':
|
| exe_dir = dirname(sys.executable)
|
| if exe_dir.endswith('Scripts'):
|
| return [os.path.join(exe_dir, 'f2py')]
|
| else:
|
| return [os.path.join(exe_dir, "Scripts", 'f2py')]
|
| else:
|
|
|
|
|
|
|
|
|
| version = sys.version_info
|
| major = str(version.major)
|
| minor = str(version.minor)
|
| return ['f2py', 'f2py' + major, 'f2py' + major + '.' + minor]
|
|
|
|
|
| @pytest.mark.skipif(is_inplace, reason="Cannot test f2py command inplace")
|
| @pytest.mark.xfail(reason="Test is unreliable")
|
| @pytest.mark.parametrize('f2py_cmd', find_f2py_commands())
|
| def test_f2py(f2py_cmd):
|
|
|
| stdout = subprocess.check_output([f2py_cmd, '-v'])
|
| assert_equal(stdout.strip(), np.__version__.encode('ascii'))
|
|
|
|
|
| @pytest.mark.skipif(IS_WASM, reason="Cannot start subprocess")
|
| def test_pep338():
|
| stdout = subprocess.check_output([sys.executable, '-mnumpy.f2py', '-v'])
|
| assert_equal(stdout.strip(), np.__version__.encode('ascii'))
|
|
|