12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- """ 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_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'): # virtualenv
- return [os.path.join(exe_dir, 'f2py')]
- else:
- return [os.path.join(exe_dir, "Scripts", 'f2py')]
- else:
- # Three scripts are installed in Unix-like systems:
- # 'f2py', 'f2py{major}', and 'f2py{major.minor}'. For example,
- # if installed with python3.7 the scripts would be named
- # 'f2py', 'f2py3', and 'f2py3.7'.
- 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):
- # test that we can run f2py script
- stdout = subprocess.check_output([f2py_cmd, '-v'])
- assert_equal(stdout.strip(), np.__version__.encode('ascii'))
- def test_pep338():
- stdout = subprocess.check_output([sys.executable, '-mnumpy.f2py', '-v'])
- assert_equal(stdout.strip(), np.__version__.encode('ascii'))
|