mirror of
https://github.com/enpaul/tox-poetry-installer.git
synced 2024-12-05 01:40:44 +00:00
Add runtime option for forcing error if poetry is not found
This commit is contained in:
parent
39439f132a
commit
99edc1c24e
@ -36,6 +36,5 @@ try:
|
||||
from poetry.utils.env import VirtualEnv
|
||||
except ImportError:
|
||||
raise exceptions.PoetryNotInstalledError(
|
||||
f"No version of Poetry could be imported under the current environment for '{sys.executable}'",
|
||||
sys.path,
|
||||
f"No version of Poetry could be imported under the current environment for '{sys.executable}'"
|
||||
) from None
|
||||
|
@ -29,6 +29,13 @@ def tox_addoption(parser: ToxParser):
|
||||
dependencies should be treated as locked or not.
|
||||
"""
|
||||
|
||||
parser.add_argument(
|
||||
"--require-poetry",
|
||||
action="store_true",
|
||||
dest="require_poetry",
|
||||
help="Trigger a failure if Poetry is not available to Tox",
|
||||
)
|
||||
|
||||
parser.add_testenv_attribute(
|
||||
name="install_dev_deps",
|
||||
type="bool",
|
||||
@ -65,6 +72,13 @@ def tox_testenv_install_deps(venv: ToxVirtualEnv, action: ToxAction) -> Optional
|
||||
try:
|
||||
poetry = utilities.check_preconditions(venv, action)
|
||||
except exceptions.SkipEnvironment as err:
|
||||
if (
|
||||
isinstance(err, exceptions.PoetryNotInstalledError)
|
||||
and venv.envconfig.config.option.require_poetry
|
||||
):
|
||||
venv.status = err.__class__.__name__
|
||||
reporter.error(str(err))
|
||||
return False
|
||||
reporter.verbosity1(str(err))
|
||||
return None
|
||||
|
||||
|
@ -114,8 +114,6 @@ def find_transients(packages: PackageMap, dependency_name: str) -> Set[PoetryPac
|
||||
|
||||
def check_preconditions(venv: ToxVirtualEnv, action: ToxAction) -> "_poetry.Poetry":
|
||||
"""Check that the local project environment meets expectations"""
|
||||
from tox_poetry_installer import _poetry
|
||||
|
||||
# Skip running the plugin for the packaging environment. PEP-517 front ends can handle
|
||||
# that better than we can, so let them do their thing. More to the point: if you're having
|
||||
# problems in the packaging env that this plugin would solve, god help you.
|
||||
@ -124,6 +122,8 @@ def check_preconditions(venv: ToxVirtualEnv, action: ToxAction) -> "_poetry.Poet
|
||||
f"Skipping isolated packaging build env '{action.name}'"
|
||||
)
|
||||
|
||||
from tox_poetry_installer import _poetry
|
||||
|
||||
try:
|
||||
return _poetry.Factory().create_poetry(venv.envconfig.config.toxinidir)
|
||||
# Support running the plugin when the current tox project does not use Poetry for its
|
||||
|
Loading…
Reference in New Issue
Block a user