специфичные для платформы переменные в tox - PullRequest
0 голосов
/ 31 мая 2019

У меня есть tox.ini, который работает на Linux / MacOS, но не на Windows. Соответствующий раздел выглядит как

[testenv:report]
commands =
  {envbindir}/command.py file.txt /dev/null

, который не работает в Windows, потому что /dev/null - это не файл. Мне нужно заменить его на NUL: только для Windows. Я пытался использовать мультиплатформенные функции tox

[tox]
envlist =
    py{27,34,35,36,37}-{posix,win}
    report
[testenv]
platform = 
    posix: linux
    posix: darwin
    win: win32
[testenv:report]
nowhere = 
    posix: /dev/null
    win: NUL:
commands =
  {envbindir}/command.py file.txt {nowhere}

но я получаю ошибку tox.exception.ConfigError: ConfigError: substitution key 'nowhere' not found

Я также пытался с переменными окружения

setenv =
    posix: NOWHERE=/dev/null
    win: NOWHERE=NUL
commands =
  {envbindir}/command.py file.txt {env:NOWHERE}

что дает ERROR: report: unresolvable substitution(s): 'NOWHERE'. Environment variables are missing or defined recursively.

tox версия 3.12.1

...