Skip to content

Commit b7c34b9

Browse files
committed
Fix using platform with install_command
Fixes tox-dev#1464
1 parent e4d0d60 commit b7c34b9

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

docs/changelog/1464.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix ``platform`` support for ``install_command``. - by :user:`jayvdb`

src/tox/config/__init__.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1672,13 +1672,24 @@ def getargv(self, name, default="", replace=True):
16721672
return self.getargvlist(name, default, replace=replace)[0]
16731673

16741674
def getargv_install_command(self, name, default="", replace=True):
1675+
def _unescape_install_command_args(s):
1676+
s = s.replace(r"\{packages\}", "{packages}")
1677+
s = s.replace(r"\{opts\}", "{opts}")
1678+
return s
1679+
16751680
s = self.getstring(name, default, replace=False)
16761681
if "{packages}" in s:
16771682
s = s.replace("{packages}", r"\{packages\}")
16781683
if "{opts}" in s:
16791684
s = s.replace("{opts}", r"\{opts\}")
16801685

1681-
return _ArgvlistReader.getargvlist(self, s, replace=replace)[0]
1686+
values = _ArgvlistReader.getargvlist(self, s, replace=replace)
1687+
if not values:
1688+
# This occurs when factors are used, and a testenv doesnt have
1689+
# a factorised value for install_command, most commonly occurring
1690+
# if setting platform is also used.
1691+
return _unescape_install_command_args(default)
1692+
return values[0]
16821693

16831694
def getstring(self, name, default=None, replace=True, crossonly=False, no_fallback=False):
16841695
x = None

0 commit comments

Comments
 (0)