Как правило, вы можете ввести имя модуля в прибор следующим образом:
@pytest.fixture
def fixture_global(request):
module_name = request.module.__name__
print(module_name)
# some logic depends on module name
Это может быть даже глобальное приспособление в conftest, но этот способ не работает с фиксаторами области сеанса , потому что они не вызываются каждым модулем, который его использует.
Если вы хотите иметь базовый общий код фикстуры и, кроме того, какой-то конкретный код для конкретных модулей, я бы предложил лучший способ.
В глобальный conftest.py положить «базовый» светильник с универсальным кодом. Если вы хотите использовать его в конкретном тестовом модуле, просто введите глобальный фиксатор в локальный. Примерно так:
conftest.py
@pytest.fixture
def global_fixture():
# universal code for vary modules
return universal_obj
test_module.py
@pytest.fixture
def local_fixture(global_fixture):
# specific code that uses global fixture result