Fix return code of “pysetup run COMMAND” (closes #12222)
This commit is contained in:
parent
8ed34a130e
commit
6fd287e6c2
|
@ -283,10 +283,11 @@ def _run(dispatcher, args, **kw):
|
||||||
dist.parse_config_files()
|
dist.parse_config_files()
|
||||||
|
|
||||||
for cmd in dispatcher.commands:
|
for cmd in dispatcher.commands:
|
||||||
|
# FIXME need to catch MetadataMissingError here (from the check command
|
||||||
|
# e.g.)--or catch any exception, print an error message and exit with 1
|
||||||
dist.run_command(cmd, dispatcher.command_options[cmd])
|
dist.run_command(cmd, dispatcher.command_options[cmd])
|
||||||
|
|
||||||
# XXX this is crappy
|
return 0
|
||||||
return dist
|
|
||||||
|
|
||||||
|
|
||||||
@action_help("""\
|
@action_help("""\
|
||||||
|
|
|
@ -4,12 +4,9 @@ import sys
|
||||||
import logging
|
import logging
|
||||||
import packaging.util
|
import packaging.util
|
||||||
|
|
||||||
from io import StringIO
|
|
||||||
from packaging.run import main
|
|
||||||
from packaging.errors import PackagingError
|
from packaging.errors import PackagingError
|
||||||
from packaging.install import remove
|
from packaging.install import remove
|
||||||
from packaging.database import disable_cache, enable_cache
|
from packaging.database import disable_cache, enable_cache
|
||||||
from packaging.command.install_dist import install_dist
|
|
||||||
|
|
||||||
from packaging.tests import unittest, support
|
from packaging.tests import unittest, support
|
||||||
|
|
||||||
|
@ -47,16 +44,12 @@ class UninstallTestCase(support.TempdirManager,
|
||||||
packaging.util._path_created.clear()
|
packaging.util._path_created.clear()
|
||||||
super(UninstallTestCase, self).tearDown()
|
super(UninstallTestCase, self).tearDown()
|
||||||
|
|
||||||
def run_setup(self, *args):
|
|
||||||
# run setup with args
|
|
||||||
args = ['run'] + list(args)
|
|
||||||
dist = main(args)
|
|
||||||
return dist
|
|
||||||
|
|
||||||
def get_path(self, dist, name):
|
def get_path(self, dist, name):
|
||||||
cmd = install_dist(dist)
|
# the dist argument must contain an install_dist command correctly
|
||||||
cmd.prefix = self.root_dir
|
# initialized with a prefix option and finalized befored this method
|
||||||
cmd.finalize_options()
|
# can be called successfully; practically, this means that you should
|
||||||
|
# call self.install_dist before self.get_path
|
||||||
|
cmd = dist.get_command_obj('install_dist')
|
||||||
return getattr(cmd, 'install_' + name)
|
return getattr(cmd, 'install_' + name)
|
||||||
|
|
||||||
def make_dist(self, name='Foo', **kw):
|
def make_dist(self, name='Foo', **kw):
|
||||||
|
@ -83,8 +76,17 @@ class UninstallTestCase(support.TempdirManager,
|
||||||
if not dirname:
|
if not dirname:
|
||||||
dirname = self.make_dist(name, **kw)
|
dirname = self.make_dist(name, **kw)
|
||||||
os.chdir(dirname)
|
os.chdir(dirname)
|
||||||
sys.stderr = StringIO()
|
|
||||||
dist = self.run_setup('install_dist', '--prefix=' + self.root_dir)
|
dist = support.TestDistribution()
|
||||||
|
# for some unfathomable reason, the tests will fail horribly if the
|
||||||
|
# parse_config_files method is not called, even if it doesn't do
|
||||||
|
# anything useful; trying to build and use a command object manually
|
||||||
|
# also fails
|
||||||
|
dist.parse_config_files()
|
||||||
|
dist.finalize_options()
|
||||||
|
dist.run_command('install_dist',
|
||||||
|
{'prefix': ('command line', self.root_dir)})
|
||||||
|
|
||||||
site_packages = self.get_path(dist, 'purelib')
|
site_packages = self.get_path(dist, 'purelib')
|
||||||
return dist, site_packages
|
return dist, site_packages
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue