pytest - значение параметра прибора по умолчанию - PullRequest
0 голосов
/ 09 января 2019

Я написал в pytest прибор, который не был параметризован, но используется многими тестами. Позже мне нужно было параметризовать этот прибор.

Чтобы не пришлось mark.parametrize все старые тесты, я сделал следующее:

def ldap_con(request):
    try:
        server_name = request.param
    except AttributeError:
        server_name = "ldaps://my_default_server"
    c = Connection(server_name, use_ssl=True)
    yield c
    c.unbind()

Теперь я могу иметь оба:

def test_old(ldap_con):
    run_test_to_default_connection(ldap_con)


@pytest.mark.parametrize('ldap_con', ['mynewserver'], indirect=True)
def test_new(ldap_con):
    run_test_to_new_connection(ldap_con)

Решение имеет несколько недостатков:

  • Я ловлю произвольную ошибку атрибута (может быть другой)
  • Не учитывает именованные параметры
  • Читателю не ясно, есть ли значение по умолчанию

Существует ли стандартный способ определения значения по умолчанию для параметра прибора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...