Проблема замены переменной окружения tox.ini - PullRequest
0 голосов
/ 16 апреля 2019

Я работаю над тем, чтобы использовать переменную среды каталогов внутри tox, чтобы передать аргумент arg в сценарий оболочки, который ожидает завершения миграции базы данных перед началом тестирования. Когда это выполняется, хотя аргумент теряется при выводе $1 в сценарии .sh.

[tox]
envlist = py27
skipsdist=True

[testenv]
passenv = *
deps = -r {env:APP_ROOT}/requirements.txt
commands_pre = {env:APP_ROOT}/scripts/wait-for-db.sh {env:DBSENTINEL}/.db-migrations-ready
usedevelop = true
commands = py.test
commands_post = /bin/rm {env:DBSENTINEL}/.db-migrations-ready

Я получаю

Darwin run-test-pre: commands[0] | /Users/alexander/projects/python-services/scripts/wait-for-db.sh /Users/alexander/projects/python-services/.db-migrations-ready
.db-migrations-ready

То, что я хотел бы вывести из сценария оболочки, это полный путь, видимый в run-test-pre output /Users/alexander/projects/python-services/.db-migrations-ready. Вместо этого только .db-migrations-ready проходит.

Если я изменю pre_commands на

commands_pre = {env:APP_ROOT}/scripts/wait-for-db.sh {env:DBSENTINEL}//.db-migrations-ready

Тогда я вижу полное эхо замещения

Darwin run-test-pre: commands[0] | /Users/alexander/projects/python-services/scripts/wait-for-db.sh /Users/alexander/projects/python-services//.db-migrations-ready
/Users/alexander/projects/python-services//.db-migrations-ready

Я предполагаю, что это связано с проблемой escape, форматирования или argparse, но не уверен. Мне нужно, чтобы {env: DBSENTINEL} распаковал заданный путь к каталогу и передал скрипту оболочки как $arg1.

1 Ответ

0 голосов
/ 16 апреля 2019

Одиночные кавычки, кажется, исправить, и я думаю, что это связано с этой проблемой Github.

commands_pre = {env:APP_ROOT}/scripts/wait-for-db.sh '{env:DBSENTINEL}/.db-migrations-ready'
Darwin run-test-pre: commands[1] | /Users/alexander/projects/python-services/scripts/wait-for-db.sh /Users/alexander/projects/python-services/.db-migrations-ready
/Users/alexander/projects/cloud/python-services/.db-migrations-ready
...