LINUX.ORG.RU

Конфигурация pytest тестов

 ,


0

2

Хочется уметь сконфигурировать параметры типа пути к пакету в приёмочных тестах на pytest.

Есть какой то штатный способ? Или только велосепидостроение?

TL;DR: rtfm от анона всё решает: тыц

★★★★★

Последнее исправление: pon4ik (всего исправлений: 1)

Что значит «путь к пакету»?

Впрочем, просто создай virtualenv с нужными версиями пакетов и всё (requirements.txt в помощь). А задавать пути итп это, имхо, неправильно.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ну, юзекейс вызова примерно такой:

Собрался на CI пакет вида product_1.2.3.abcdef Нужно прогнать на этом пакете тесты.

Т.е. следующий билд будет называться product.1.2.4.deadb

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

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Из описания пока понятно, что ты не знаешь как сконфигурировать CI, а не pytest.

Но попытаюсь угадать — передавать путь через переменную окружения?

anonymous
()
Ответ на: комментарий от anonymous

Переменные окружения это как вариант, да и фикстуру на сессию которая читает конфиг.

Вопрос - как задумано авторами фреймворка(если задумано).

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Вопрос - как задумано авторами фреймворка(если задумано).

https://docs.pytest.org/en/latest/example/simple.html#pass-different-values-t...

Но авторы фреймворка решают всегда свои проблемы, а не твои, плюс их всегда уносит в облака, и очевидные вещи, которые понятно и просто можно сделать на коленке превращаются в API который еще нужно изучать.

anonymous
()
Ответ на: комментарий от anonymous

О! Спасибо. Как же я это проглядел :(

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Собрался на CI пакет вида product_1.2.3.abcdef Нужно прогнать на этом пакете тесты.

Я всё ещё не понимаю в чём проблема. Создаешь virtualenv с нужными пакетами, прогоняешь в нём тесты.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Разница в том, что надо деплоить пакеты в определенное, захардкоженное место(относительно корня virtualenv например).

Но может быть - я тебя не понимаю.

Вот исходные данные. Есть пакеты развёрнутые в /opt/foo-1.2.3, /opt/foo-1.2.4 и /home/vasya/pupkin/foo. При этом, продукта минимум два(тестируется их взаимодействие): /opt/bar-1.5.1, /opt/bar-1.5.2 и /home/vasya/pupkin/work/bar.

Как используя virtualenv - протестировать все три пары пакетов не меняя сорцы тестов?

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.