2014-06-30 2 views
3

У меня есть тестовый класс и функция установки, которая выглядит следующим образом:pytest приспособления к самоанализу вызова функции

@pytest.fixture(autouse=True, scope='function') 
def setup(self, request): 
    self.client = MyClass() 
    first_patcher = patch('myclass.myclass.function_to_patch') 
    first_mock = first_patcher.start() 
    first_mock.return_value = 'foo' 
    value_to_return = getattr(request, 'value_name', None) 
    second_patcher = patch('myclass.myclass.function_two') 
    second_mock = second_patcher.start() 
    second_mock.return_value = value_to_return 
    #could clean up my mocks here, but don't care right now 

Я вижу в документации pytest, что интроспекция может быть сделана для значения уровня модуля: val = getattr (request.module, 'val_name', None)

Но, я хочу, чтобы иметь возможность указывать разные значения для возврата, основанные на тесте, в котором я участвую. Поэтому я ищу способ взглянуть на test_function а не test_module.

http://pytest.org/latest/fixture.html#fixtures-can-introspect-the-requesting-test-context

ответ

5

Вы можете использовать request.function, чтобы добраться до функции тестирования. Просто перейдите по ссылке на странице, на которую вы ссылаетесь, чтобы увидеть, что доступно на тесте request объект :)

 Смежные вопросы

  • Нет связанных вопросов^_^