I'm new on python and pytest, and at the momment I understand the basic of how work. But I can't find documentation to the below scenario:
I created a generic fixture that have the default mock values used in my project, and use this fixture in tests, it works fine. Something like:
#fixture
@pytest.fixture()
def generic_fixture(mocker):
mocker.patch('project.some_class.url', "http://some_url:5002")
#test
def test_1(generic_fixture):
do_something() # method that uses values from my generic fixture
assert True
Now I want to know if have a way to pass a parameter in my test to my fixture call, to make some decision, something like:
#fixture
@pytest.fixture()
def generic_fixture(mocker, parameter_url):
if parameter_url == None
mocker.patch('project.some_class.url', "http://some_url:5002")
else:
mocker.patch('project.some_class.url', parameter_url)
#test
def test_1(generic_fixture(parameter_url)):
do_something() # method that uses values from my generic fixture
assert True
How I can do It properly? I looked at monkeypath, @pytest.mark.parametrize and some other structures, but none of them look to do what I want.