Merge pull request #212 from nsoranzo/flake8

Fix all PEP-008 issues
This commit is contained in:
Yannick Jadoul
2020-02-14 18:14:36 +01:00
committed by GitHub
40 changed files with 223 additions and 93 deletions
+14
View File
@@ -1,6 +1,19 @@
version: 2 version: 2
jobs: jobs:
flake8:
docker:
- image: circleci/python:3.6
steps:
- checkout
- run:
name: Install flake8
command: sudo python -m pip install flake8
- run:
name: Test.
command: flake8 --exclude=.git,.venv,site .
osx-python3.6: osx-python3.6:
macos: macos:
xcode: "9.4.1" xcode: "9.4.1"
@@ -51,6 +64,7 @@ workflows:
version: 2 version: 2
all-tests: all-tests:
jobs: jobs:
- flake8
- osx-python3.6 - osx-python3.6
- osx-python3.7 - osx-python3.7
- linux-python3.6 - linux-python3.6
+4 -3
View File
@@ -1,6 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os, sys, subprocess, shutil import argparse
import os
import subprocess
import sys
def single_run(test_project): def single_run(test_project):
@@ -11,8 +14,6 @@ def single_run(test_project):
if __name__ == '__main__': if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("test_project_dir") parser.add_argument("test_project_dir")
args = parser.parse_args() args = parser.parse_args()
+5 -3
View File
@@ -1,17 +1,19 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os, sys, subprocess, shutil, json import os
import subprocess
import sys
from glob import glob from glob import glob
if __name__ == '__main__': if __name__ == '__main__':
# move cwd to the project root # move cwd to the project root
os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
### run the unit tests # run the unit tests
subprocess.check_call([sys.executable, '-m', 'pytest', 'unit_test']) subprocess.check_call([sys.executable, '-m', 'pytest', 'unit_test'])
### run the integration tests # run the integration tests
test_projects = sorted(glob('test/??_*')) test_projects = sorted(glob('test/??_*'))
+19 -8
View File
@@ -1,9 +1,22 @@
import argparse, os, subprocess, sys, textwrap import argparse
import os
import sys
import textwrap
import traceback
import cibuildwheel import cibuildwheel
import cibuildwheel.linux, cibuildwheel.windows, cibuildwheel.macos import cibuildwheel.linux
from cibuildwheel.environment import parse_environment, EnvironmentParseError import cibuildwheel.macos
from cibuildwheel.util import BuildSelector, Unbuffered import cibuildwheel.windows
from cibuildwheel.environment import (
EnvironmentParseError,
parse_environment,
)
from cibuildwheel.util import (
BuildSelector,
Unbuffered
)
def get_option_from_environment(option_name, platform=None, default=None): def get_option_from_environment(option_name, platform=None, default=None):
''' '''
@@ -84,7 +97,6 @@ def main():
file=sys.stderr) file=sys.stderr)
exit(2) exit(2)
output_dir = args.output_dir output_dir = args.output_dir
test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform) test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform)
test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split() test_requires = get_option_from_environment('CIBW_TEST_REQUIRES', platform=platform, default='').split()
@@ -112,9 +124,8 @@ def main():
try: try:
environment = parse_environment(environment_config) environment = parse_environment(environment_config)
except (EnvironmentParseError, ValueError) as e: except (EnvironmentParseError, ValueError):
print('cibuildwheel: Malformed environment option "%s"' % environment_config, file=sys.stderr) print('cibuildwheel: Malformed environment option "%s"' % environment_config, file=sys.stderr)
import traceback
traceback.print_exc(None, sys.stderr) traceback.print_exc(None, sys.stderr)
exit(2) exit(2)
@@ -210,6 +221,7 @@ def detect_obsolete_options():
)) ))
os.environ[option] = os.environ[option].replace(deprecated, alternative) os.environ[option] = os.environ[option].replace(deprecated, alternative)
def print_preamble(platform, build_options): def print_preamble(platform, build_options):
print(textwrap.dedent(''' print(textwrap.dedent('''
_ _ _ _ _ _ _ _ _ _ _ _ _ _
@@ -220,7 +232,6 @@ def print_preamble(platform, build_options):
print('cibuildwheel version %s\n' % cibuildwheel.__version__) print('cibuildwheel version %s\n' % cibuildwheel.__version__)
print('Build options:') print('Build options:')
print(' platform: %r' % platform) print(' platform: %r' % platform)
for option, value in sorted(build_options.items()): for option, value in sorted(build_options.items()):
+4 -1
View File
@@ -1,9 +1,12 @@
import subprocess, shlex, sys import shlex
import subprocess
from collections import namedtuple from collections import namedtuple
import bashlex import bashlex
NodeExecutionContext = namedtuple('NodeExecutionContext', ['environment', 'input']) NodeExecutionContext = namedtuple('NodeExecutionContext', ['environment', 'input'])
def evaluate(value, environment): def evaluate(value, environment):
if not value: if not value:
# empty string evaluates to empty string # empty string evaluates to empty string
+1
View File
@@ -1,4 +1,5 @@
import bashlex import bashlex
from . import bashlex_eval from . import bashlex_eval
+16 -8
View File
@@ -1,6 +1,15 @@
import os, shlex, subprocess, sys, textwrap, uuid import os
import shlex
import subprocess
import sys
import textwrap
import uuid
from collections import namedtuple from collections import namedtuple
from .util import prepare_command, get_build_verbosity_extra_flags
from .util import (
get_build_verbosity_extra_flags,
prepare_command,
)
def get_python_configurations(build_selector): def get_python_configurations(build_selector):
@@ -27,7 +36,7 @@ def get_python_configurations(build_selector):
def build(project_dir, output_dir, test_command, test_requires, test_extras, before_build, build_verbosity, build_selector, repair_command, environment, manylinux_images): def build(project_dir, output_dir, test_command, test_requires, test_extras, before_build, build_verbosity, build_selector, repair_command, environment, manylinux_images):
try: try:
subprocess.check_call(['docker', '--version']) subprocess.check_call(['docker', '--version'])
except: except Exception:
print('cibuildwheel: Docker not found. Docker is required to run Linux builds. ' print('cibuildwheel: Docker not found. Docker is required to run Linux builds. '
'If you\'re building on Travis CI, add `services: [docker]` to your .travis.yml.' 'If you\'re building on Travis CI, add `services: [docker]` to your .travis.yml.'
'If you\'re building on Circle CI in Linux, add a `setup_remote_docker` step to your .circleci/config.yml', 'If you\'re building on Circle CI in Linux, add a `setup_remote_docker` step to your .circleci/config.yml',
@@ -123,7 +132,7 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
for repaired_wheel in "${{repaired_wheels[@]}}"; do chown {uid}:{gid} "/output/$(basename "$repaired_wheel")"; done for repaired_wheel in "${{repaired_wheels[@]}}"; do chown {uid}:{gid} "/output/$(basename "$repaired_wheel")"; done
done done
'''.format( '''.format(
pybin_paths=' '.join(c.path+'/bin' for c in platform_configs), pybin_paths=' '.join(c.path + '/bin' for c in platform_configs),
test_requires=' '.join(test_requires), test_requires=' '.join(test_requires),
test_extras=test_extras, test_extras=test_extras,
test_command=shlex.quote( test_command=shlex.quote(
@@ -147,9 +156,8 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
'--env', 'CIBUILDWHEEL', '--env', 'CIBUILDWHEEL',
'--name', container_name, '--name', container_name,
'-i', '-i',
'-v', '/:/host', # ignored on CircleCI '-v', '/:/host', # ignored on CircleCI
docker_image, '/bin/bash'], docker_image, '/bin/bash'], check=True)
check=True)
subprocess.run(['docker', 'cp', os.path.abspath(project_dir) + '/.', container_name + ':/project'], check=True) subprocess.run(['docker', 'cp', os.path.abspath(project_dir) + '/.', container_name + ':/project'], check=True)
subprocess.run(['docker', 'start', '-i', '-a', container_name], input=bash_script, universal_newlines=True, check=True) subprocess.run(['docker', 'start', '-i', '-a', container_name], input=bash_script, universal_newlines=True, check=True)
subprocess.run(['docker', 'cp', container_name + ':/output/.', os.path.abspath(output_dir)], check=True) subprocess.run(['docker', 'cp', container_name + ':/output/.', os.path.abspath(output_dir)], check=True)
@@ -184,5 +192,5 @@ def troubleshoot(project_dir, error):
''')) '''))
print(' Files detected:') print(' Files detected:')
print('\n'.join([' '+f for f in so_files])) print('\n'.join([' ' + f for f in so_files]))
print('') print('')
+10 -3
View File
@@ -1,9 +1,16 @@
import os
import shlex
import shutil
import subprocess
import tempfile import tempfile
import os, subprocess, shlex, sys, shutil
from collections import namedtuple from collections import namedtuple
from glob import glob from glob import glob
from .util import prepare_command, get_build_verbosity_extra_flags, download from .util import (
download,
get_build_verbosity_extra_flags,
prepare_command,
)
def get_python_configurations(build_selector): def get_python_configurations(build_selector):
@@ -31,7 +38,7 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
get_pip_url = 'https://bootstrap.pypa.io/get-pip.py' get_pip_url = 'https://bootstrap.pypa.io/get-pip.py'
get_pip_script = '/tmp/get-pip.py' get_pip_script = '/tmp/get-pip.py'
pkgs_output = subprocess.check_output(['pkgutil', '--pkgs'], universal_newlines=True) pkgs_output = subprocess.check_output(['pkgutil', '--pkgs'], universal_newlines=True)
installed_system_packages = pkgs_output.splitlines() installed_system_packages = pkgs_output.splitlines()
def call(args, env=None, cwd=None, shell=False): def call(args, env=None, cwd=None, shell=False):
+3 -3
View File
@@ -1,6 +1,6 @@
import os
import urllib.request
from fnmatch import fnmatch from fnmatch import fnmatch
import warnings
import os, urllib.request
from time import sleep from time import sleep
@@ -64,7 +64,7 @@ def download(url, dest):
for i in range(repeat_num): for i in range(repeat_num):
try: try:
response = urllib.request.urlopen(url) response = urllib.request.urlopen(url)
except: except Exception:
if i == repeat_num - 1: if i == repeat_num - 1:
raise raise
sleep(3) sleep(3)
+11 -3
View File
@@ -1,8 +1,15 @@
import os, tempfile, subprocess, shutil, sys import os
import shutil
import subprocess
import tempfile
from collections import namedtuple from collections import namedtuple
from glob import glob from glob import glob
from .util import prepare_command, get_build_verbosity_extra_flags, download from .util import (
download,
get_build_verbosity_extra_flags,
prepare_command,
)
IS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache') IS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache')
@@ -20,6 +27,7 @@ def get_nuget_args(configuration):
python_name = python_name + "x86" python_name = python_name + "x86"
return [python_name, "-Version", configuration.version, "-OutputDirectory", "C:/cibw/python"] return [python_name, "-Version", configuration.version, "-OutputDirectory", "C:/cibw/python"]
def get_python_configurations(build_selector): def get_python_configurations(build_selector):
PythonConfiguration = namedtuple('PythonConfiguration', ['version', 'arch', 'identifier']) PythonConfiguration = namedtuple('PythonConfiguration', ['version', 'arch', 'identifier'])
python_configurations = [ python_configurations = [
@@ -40,7 +48,7 @@ def get_python_configurations(build_selector):
# try with (and similar): msiexec /i VCForPython27.msi ALLUSERS=1 ACCEPT=YES /passive # try with (and similar): msiexec /i VCForPython27.msi ALLUSERS=1 ACCEPT=YES /passive
python_configurations = [c for c in python_configurations if not c.version.startswith('2.7.')] python_configurations = [c for c in python_configurations if not c.version.startswith('2.7.')]
# skip builds as required # skip builds as required
python_configurations = [c for c in python_configurations if build_selector(c.identifier)] python_configurations = [c for c in python_configurations if build_selector(c.identifier)]
return python_configurations return python_configurations
@@ -1,4 +1,9 @@
import mkdocs, re, os, io, cgi import cgi
import io
import os
import re
import mkdocs
INCLUDE_TAG_REGEX = re.compile( INCLUDE_TAG_REGEX = re.compile(
r''' r'''
@@ -28,6 +33,7 @@ INCLUDEMARKDOWN_TAG_REGEX = re.compile(
flags=re.VERBOSE, flags=re.VERBOSE,
) )
class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin): class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
def on_page_markdown(self, markdown, page, **kwargs): def on_page_markdown(self, markdown, page, **kwargs):
page_src_path = page.file.abs_src_path page_src_path = page.file.abs_src_path
@@ -49,7 +55,6 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
return text_to_include return text_to_include
def found_includemarkdown_tag(match): def found_includemarkdown_tag(match):
filename = match.group('filename') filename = match.group('filename')
start = match.group('start') start = match.group('start')
@@ -80,4 +85,3 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
markdown = re.sub(INCLUDE_TAG_REGEX, found_include_tag, markdown) markdown = re.sub(INCLUDE_TAG_REGEX, found_include_tag, markdown)
markdown = re.sub(INCLUDEMARKDOWN_TAG_REGEX, found_includemarkdown_tag, markdown) markdown = re.sub(INCLUDEMARKDOWN_TAG_REGEX, found_includemarkdown_tag, markdown)
return markdown return markdown
+3
View File
@@ -19,3 +19,6 @@ replace = cibuildwheel=={new_version}
[bdist_wheel] [bdist_wheel]
universal = 1 universal = 1
[flake8]
ignore = E501,W503
application-import-names = cibuildwheel
+3 -2
View File
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os, io import io
import os
try: try:
from setuptools import setup from setuptools import setup
@@ -20,7 +21,7 @@ setup(
author="Joe Rickerby", author="Joe Rickerby",
author_email='joerick@mac.com', author_email='joerick@mac.com',
url='https://github.com/joerick/cibuildwheel', url='https://github.com/joerick/cibuildwheel',
packages=['cibuildwheel',], packages=['cibuildwheel', ],
license="BSD", license="BSD",
zip_safe=False, zip_safe=False,
package_data={ package_data={
+3 -2
View File
@@ -1,9 +1,10 @@
import os import os
import utils import utils
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
def test(): def test():
# build the wheels # build the wheels
actual_wheels = utils.cibuildwheel_run(project_dir) actual_wheels = utils.cibuildwheel_run(project_dir)
@@ -20,6 +21,6 @@ def test_build_identifiers():
# can be multiple wheels for each wheel, though, so we need to limit # can be multiple wheels for each wheel, though, so we need to limit
# the expected wheels # the expected wheels
expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0') expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0')
if not '-manylinux' in w or '-manylinux1' in w] if '-manylinux' not in w or '-manylinux1' in w]
build_identifiers = utils.cibuildwheel_get_build_identifiers(project_dir) build_identifiers = utils.cibuildwheel_get_build_identifiers(project_dir)
assert len(expected_wheels) == len(build_identifiers) assert len(expected_wheels) == len(build_identifiers)
+4 -1
View File
@@ -1,6 +1,9 @@
import os import os
from setuptools import setup, Extension from setuptools import (
Extension,
setup,
)
if os.environ.get('CIBUILDWHEEL', '0') != '1': if os.environ.get('CIBUILDWHEEL', '0') != '1':
raise Exception('CIBUILDWHEEL environment variable is not set to 1') raise Exception('CIBUILDWHEEL environment variable is not set to 1')
+5 -1
View File
@@ -1,7 +1,11 @@
import os, subprocess import os
import subprocess
import pytest import pytest
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
+4 -1
View File
@@ -1,4 +1,7 @@
from setuptools import setup, Extension from setuptools import (
Extension,
setup,
)
setup( setup(
name="spam", name="spam",
+1
View File
@@ -1,4 +1,5 @@
from unittest import TestCase from unittest import TestCase
import spam import spam
@@ -1,6 +1,8 @@
import os import os
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
+7 -2
View File
@@ -1,5 +1,10 @@
from setuptools import setup, Extension import os
import sys, os import sys
from setuptools import (
Extension,
setup,
)
# assert that the Python version as written to pythonversion.txt in the CIBW_BEFORE_BUILD step # assert that the Python version as written to pythonversion.txt in the CIBW_BEFORE_BUILD step
# is the same one as is currently running. # is the same one as is currently running.
+2
View File
@@ -1,6 +1,8 @@
import os import os
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
+5 -1
View File
@@ -1,6 +1,10 @@
from setuptools import setup, Extension
import sys import sys
from setuptools import (
Extension,
setup,
)
# explode if run on Python 2.7 or Python 3.4 (these should be skipped) # explode if run on Python 2.7 or Python 3.4 (these should be skipped)
if sys.version_info[0:2] == (2, 7): if sys.version_info[0:2] == (2, 7):
raise Exception('Python 2.7 should not be built') raise Exception('Python 2.7 should not be built')
+2
View File
@@ -1,6 +1,8 @@
import os import os
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
+6 -3
View File
@@ -1,5 +1,9 @@
from setuptools import setup, Extension import os
import sys, os
from setuptools import (
Extension,
setup,
)
# explode if environment isn't correct, as set in CIBW_ENVIRONMENT # explode if environment isn't correct, as set in CIBW_ENVIRONMENT
CIBW_TEST_VAR = os.environ.get('CIBW_TEST_VAR') CIBW_TEST_VAR = os.environ.get('CIBW_TEST_VAR')
@@ -15,7 +19,6 @@ if '/opt/cibw_test_path' not in PATH:
if '$PATH' in PATH: if '$PATH' in PATH:
raise Exception('$PATH should be expanded in PATH. It was "%s"' % PATH) raise Exception('$PATH should be expanded in PATH. It was "%s"' % PATH)
setup( setup(
name="spam", name="spam",
ext_modules=[Extension('spam', sources=['spam.c'])], ext_modules=[Extension('spam', sources=['spam.c'])],
+5 -1
View File
@@ -1,6 +1,10 @@
import os, pytest import os
import pytest
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
+6 -2
View File
@@ -1,6 +1,10 @@
import os, sys import os
import sys
from setuptools import setup, Extension from setuptools import (
Extension,
setup,
)
# check that we're running in the correct docker image as specified in the # check that we're running in the correct docker image as specified in the
# environment options CIBW_MANYLINUX1_*_IMAGE # environment options CIBW_MANYLINUX1_*_IMAGE
+2
View File
@@ -1,6 +1,8 @@
import os import os
import utils import utils
def test(): def test():
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
# this test checks that SSL is working in the build environment using # this test checks that SSL is working in the build environment using
+5 -1
View File
@@ -1,6 +1,10 @@
import ssl import ssl
import sys import sys
from setuptools import setup, Extension
from setuptools import (
Extension,
setup,
)
if sys.version_info[0] == 2: if sys.version_info[0] == 2:
from urllib2 import urlopen from urllib2 import urlopen
@@ -1,4 +1,7 @@
import os, pytest import os
import pytest
import utils import utils
+4 -1
View File
@@ -1,4 +1,7 @@
from setuptools import setup, Extension from setuptools import (
Extension,
setup,
)
setup( setup(
name="spam", name="spam",
+2 -1
View File
@@ -1,9 +1,10 @@
import os import os
import utils import utils
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
def test(): def test():
# build the wheels # build the wheels
actual_wheels = utils.cibuildwheel_run(project_dir) actual_wheels = utils.cibuildwheel_run(project_dir)
+4 -4
View File
@@ -1,7 +1,7 @@
import os from setuptools import (
Extension,
from setuptools import setup, Extension setup,
)
setup( setup(
ext_modules=[Extension('spam.spam', sources=['spam/spam.c'])], ext_modules=[Extension('spam.spam', sources=['spam/spam.c'])],
+7 -8
View File
@@ -1,13 +1,12 @@
import os import os
import sys
import pytest import pytest
import utils import utils
project_dir = os.path.dirname(__file__) project_dir = os.path.dirname(__file__)
def test_cpp11(tmp_path): def test_cpp11(tmp_path):
# This test checks that the C++11 standard is supported # This test checks that the C++11 standard is supported
@@ -18,8 +17,8 @@ def test_cpp11(tmp_path):
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env) actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
expected_wheels = [x for x in utils.expected_wheels( expected_wheels = [x for x in utils.expected_wheels(
'spam', '0.1.0', macosx_deployment_target='10.9') 'spam', '0.1.0', macosx_deployment_target='10.9')
if 'cp27-cp27m-win' not in x] if 'cp27-cp27m-win' not in x]
assert set(actual_wheels) == set(expected_wheels) assert set(actual_wheels) == set(expected_wheels)
@@ -35,8 +34,8 @@ def test_cpp14():
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env) actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
expected_wheels = [x for x in utils.expected_wheels( expected_wheels = [x for x in utils.expected_wheels(
'spam', '0.1.0', macosx_deployment_target='10.9') 'spam', '0.1.0', macosx_deployment_target='10.9')
if 'cp27-cp27m-win' not in x and 'cp35-cp35m-win' not in x] if 'cp27-cp27m-win' not in x and 'cp35-cp35m-win' not in x]
assert set(actual_wheels) == set(expected_wheels) assert set(actual_wheels) == set(expected_wheels)
@@ -55,6 +54,6 @@ def test_cpp17():
actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env) actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env)
expected_wheels = [x for x in utils.expected_wheels( expected_wheels = [x for x in utils.expected_wheels(
'spam', '0.1.0', macosx_deployment_target='10.13') 'spam', '0.1.0', macosx_deployment_target='10.13')
if 'cp27-cp27m-win' not in x and 'cp35-cp35m-win' not in x] if 'cp27-cp27m-win' not in x and 'cp35-cp35m-win' not in x]
assert set(actual_wheels) == set(expected_wheels) assert set(actual_wheels) == set(expected_wheels)
+6 -2
View File
@@ -1,7 +1,11 @@
import os, sys import os
from setuptools import setup, Extension
import platform import platform
from setuptools import (
Extension,
setup,
)
standard = os.environ["STANDARD"] standard = os.environ["STANDARD"]
language_standard = "/std:c++" + standard if platform.system() == "Windows" else "-std=c++" + standard language_standard = "/std:c++" + standard if platform.system() == "Windows" else "-std=c++" + standard
+5 -3
View File
@@ -4,10 +4,12 @@ Utility functions used by the cibuildwheel tests.
This file is added to the PYTHONPATH in the test runner at bin/run_test.py. This file is added to the PYTHONPATH in the test runner at bin/run_test.py.
''' '''
import subprocess, sys, os, shutil import os
from tempfile import mkdtemp import shutil
import subprocess
import sys
from contextlib import contextmanager from contextlib import contextmanager
from tempfile import mkdtemp
IS_WINDOWS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache') IS_WINDOWS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache')
IS_WINDOWS_RUNNING_ON_TRAVIS = os.environ.get('TRAVIS_OS_NAME') == 'windows' IS_WINDOWS_RUNNING_ON_TRAVIS = os.environ.get('TRAVIS_OS_NAME') == 'windows'
+8
View File
@@ -1,4 +1,5 @@
import os import os
from cibuildwheel.environment import parse_environment from cibuildwheel.environment import parse_environment
@@ -13,6 +14,7 @@ def test_basic_parsing():
assert environment_dict == {'VAR': '1', 'VBR': '2'} assert environment_dict == {'VAR': '1', 'VBR': '2'}
assert environment_cmds == ['export VAR=1', 'export VBR=2'] assert environment_cmds == ['export VAR=1', 'export VBR=2']
def test_quotes(): def test_quotes():
environment_recipe = parse_environment('A=1 VAR="1 NOT_A_VAR=2" VBR=\'vbr\'') environment_recipe = parse_environment('A=1 VAR="1 NOT_A_VAR=2" VBR=\'vbr\'')
@@ -24,6 +26,7 @@ def test_quotes():
assert environment_dict == {'A': '1', 'VAR': '1 NOT_A_VAR=2', 'VBR': 'vbr'} assert environment_dict == {'A': '1', 'VAR': '1 NOT_A_VAR=2', 'VBR': 'vbr'}
assert environment_cmds == ['export A=1', 'export VAR="1 NOT_A_VAR=2"', 'export VBR=\'vbr\''] assert environment_cmds == ['export A=1', 'export VAR="1 NOT_A_VAR=2"', 'export VBR=\'vbr\'']
def test_inheritance(): def test_inheritance():
environment_recipe = parse_environment('PATH=$PATH:/usr/local/bin') environment_recipe = parse_environment('PATH=$PATH:/usr/local/bin')
@@ -35,6 +38,7 @@ def test_inheritance():
assert environment_dict == {'PATH': '/usr/bin:/usr/local/bin'} assert environment_dict == {'PATH': '/usr/bin:/usr/local/bin'}
assert environment_cmds == ['export PATH=$PATH:/usr/local/bin'] assert environment_cmds == ['export PATH=$PATH:/usr/local/bin']
def test_shell_eval(): def test_shell_eval():
environment_recipe = parse_environment('VAR="$(echo "a test" string)"') environment_recipe = parse_environment('VAR="$(echo "a test" string)"')
@@ -49,6 +53,7 @@ def test_shell_eval():
assert environment_dict['VAR'] == 'a test string' assert environment_dict['VAR'] == 'a test string'
assert environment_cmds == ['export VAR="$(echo "a test" string)"'] assert environment_cmds == ['export VAR="$(echo "a test" string)"']
def test_shell_eval_and_env(): def test_shell_eval_and_env():
environment_recipe = parse_environment('VAR="$(echo "$PREV_VAR" string)"') environment_recipe = parse_environment('VAR="$(echo "$PREV_VAR" string)"')
@@ -60,6 +65,7 @@ def test_shell_eval_and_env():
assert environment_dict == {'PREV_VAR': '1 2 3', 'VAR': '1 2 3 string'} assert environment_dict == {'PREV_VAR': '1 2 3', 'VAR': '1 2 3 string'}
assert environment_cmds == ['export VAR="$(echo "$PREV_VAR" string)"'] assert environment_cmds == ['export VAR="$(echo "$PREV_VAR" string)"']
def test_empty_var(): def test_empty_var():
environment_recipe = parse_environment('CFLAGS=') environment_recipe = parse_environment('CFLAGS=')
@@ -71,6 +77,7 @@ def test_empty_var():
assert environment_dict == {'CFLAGS': ''} assert environment_dict == {'CFLAGS': ''}
assert environment_cmds == ['export CFLAGS='] assert environment_cmds == ['export CFLAGS=']
def test_no_vars(): def test_no_vars():
environment_recipe = parse_environment('') environment_recipe = parse_environment('')
@@ -80,6 +87,7 @@ def test_no_vars():
assert environment_dict == {} assert environment_dict == {}
assert environment_cmds == [] assert environment_cmds == []
def test_no_vars_pass_through(): def test_no_vars_pass_through():
environment_recipe = parse_environment('') environment_recipe = parse_environment('')
@@ -1,10 +1,15 @@
import pytest
import sys
import os import os
import subprocess import subprocess
import sys
from cibuildwheel import linux, macos, windows, util import pytest
from cibuildwheel import (
linux,
macos,
util,
windows,
)
class ArgsInterceptor: class ArgsInterceptor:
@@ -15,6 +20,7 @@ class ArgsInterceptor:
MOCK_PROJECT_DIR = 'some_project_dir' MOCK_PROJECT_DIR = 'some_project_dir'
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)
def mock_protection(monkeypatch): def mock_protection(monkeypatch):
''' '''
@@ -31,13 +37,14 @@ def mock_protection(monkeypatch):
monkeypatch.setattr(linux, 'build', fail_on_call) monkeypatch.setattr(linux, 'build', fail_on_call)
monkeypatch.setattr(macos, 'build', fail_on_call) monkeypatch.setattr(macos, 'build', fail_on_call)
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)
def fake_project_dir(monkeypatch): def fake_project_dir(monkeypatch):
''' '''
Monkey-patch enough for the main() function to run Monkey-patch enough for the main() function to run
''' '''
real_os_path_exists = os.path.exists real_os_path_exists = os.path.exists
def mock_os_path_exists(path): def mock_os_path_exists(path):
if path == os.path.join(MOCK_PROJECT_DIR, 'setup.py'): if path == os.path.join(MOCK_PROJECT_DIR, 'setup.py'):
return True return True
@@ -1,14 +1,11 @@
import pytest
import sys import sys
import pytest
from cibuildwheel.__main__ import main from cibuildwheel.__main__ import main
from cibuildwheel.environment import ParsedEnvironment from cibuildwheel.environment import ParsedEnvironment
from cibuildwheel.util import BuildSelector from cibuildwheel.util import BuildSelector
from main_util_fixtures import mock_protection, fake_project_dir, platform, intercepted_build_args
# CIBW_PLATFORM is tested in main_platform_test.py # CIBW_PLATFORM is tested in main_platform_test.py
@@ -93,6 +90,7 @@ def get_default_repair_command(platform):
else: else:
raise ValueError('Unknown platform', platform) raise ValueError('Unknown platform', platform)
@pytest.mark.parametrize('repair_command', [None, 'repair', 'repair -w {dest_dir} {wheel}']) @pytest.mark.parametrize('repair_command', [None, 'repair', 'repair -w {dest_dir} {wheel}'])
@pytest.mark.parametrize('platform_specific', [False, True]) @pytest.mark.parametrize('platform_specific', [False, True])
def test_repair_command(repair_command, platform_specific, platform, intercepted_build_args, monkeypatch): def test_repair_command(repair_command, platform_specific, platform, intercepted_build_args, monkeypatch):
@@ -225,5 +223,3 @@ def test_build_selector_migrations(intercepted_build_args, monkeypatch, option_n
assert intercepted_build_selector.build_patterns == build_selector_patterns assert intercepted_build_selector.build_patterns == build_selector_patterns
else: else:
assert intercepted_build_selector.skip_patterns == build_selector_patterns assert intercepted_build_selector.skip_patterns == build_selector_patterns
@@ -1,10 +1,10 @@
import pytest
import sys import sys
import pytest
from cibuildwheel.__main__ import main from cibuildwheel.__main__ import main
from main_util_fixtures import MOCK_PROJECT_DIR, mock_protection, fake_project_dir, platform, intercepted_build_args from conftest import MOCK_PROJECT_DIR # noqa: I100
def test_unknown_platform_non_ci(monkeypatch, capsys): def test_unknown_platform_non_ci(monkeypatch, capsys):