fix UnboundLocalError instead of proper error message (#221)

* fix UnboundLocalError: local variable 'platform' referenced before assignment
* add test to protect against regression
This commit is contained in:
Grzegorz Bokota
2019-11-21 22:45:33 +01:00
committed by Matthieu Darbois
parent 09e72800c6
commit d2700bc3b4
2 changed files with 54 additions and 10 deletions
+15 -10
View File
@@ -61,25 +61,30 @@ def main():
args = parser.parse_args()
detect_obsolete_options()
if args.platform != 'auto':
platform = args.platform
else:
ci = strtobool(os.environ.get('CI', 'false')) or 'BITRISE_BUILD_NUMBER' in os.environ or 'AZURE_HTTP_USER_AGENT' in os.environ
if ci:
if sys.platform.startswith('linux'):
platform = 'linux'
elif sys.platform == 'darwin':
platform = 'macos'
elif sys.platform == 'win32':
platform = 'windows'
if platform is None:
if not ci:
print('cibuildwheel: Unable to detect platform. cibuildwheel should run on your CI server, '
'Travis CI, AppVeyor, Azure Pipelines and CircleCI are supported. You can run on your '
'development machine or other CI providers using the --platform argument. Check --help '
'output for more information.',
file=sys.stderr)
exit(2)
if sys.platform.startswith('linux'):
platform = 'linux'
elif sys.platform == 'darwin':
platform = 'macos'
elif sys.platform == 'win32':
platform = 'windows'
else:
print('cibuildwheel: Unable to detect platform from "sys.platform" in a CI environment. You can run '
'cibuildwheel using the --platform argument. Check --help output for more information.',
file=sys.stderr)
exit(2)
output_dir = args.output_dir
test_command = get_option_from_environment('CIBW_TEST_COMMAND', platform=platform)
@@ -174,7 +179,7 @@ def main():
elif platform == 'macos':
cibuildwheel.macos.build(**build_options)
else:
raise Exception('Unsupported platform')
raise Exception('Unsupported platform: {}'.format(platform))
def detect_obsolete_options():