-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add dedicated page about using types with pytest #12842
Comments
This would be good. I’m on a project trying to use fixture types and it’s not obvious how to get those types. |
Hi, it is my first time make contribution. Can this be assigned to me please? Thank you. |
Sure, thank you for wanting to contribute to pytest ! |
Heya, I've got a Q about typing fixtures that return callables, which might fit into the docs PR. Given the example below, the typing should be @pytest.fixture
def hello_world_fixture() -> Callable[[str], str]:
def _hello_world_func(input: str) -> str:
"""docstring"""
return "hello " + input
return _hello_world_func
def test_hello_world(hello_world_fixture: Callable[[str], str]):
assert hello_world_fixture("world") == "hello world" What's the recommended typing for fixtures returning more complex callables? class HelloWorldProtocol(Protocol):
def __call__(self, input: str) -> str:
"""call docstring"""
...
class HelloWorldFixture:
"""class docstring"""
def __call__(self, input: str) -> str:
"""call docstring"""
return "hello " + input Aware this is more useful for typing plugins than regular fixture use in projects. |
@daara-s I don't think there's anything pytest specific there, the same applies to type annotating complex callables elsewhere. The Python documentation agrees with your For more complex fixtures, you might want to expose functionality via an utility class. This also has the benefit of usually being easier to understand for Python beginners over returning a nested function. Then I'd prefer having a more clear method name (say, |
Fixes #12842 --------- Co-authored-by: Bruno Oliveira <[email protected]> (cherry picked from commit ca35145)
…13260) Fixes #12842 --------- Co-authored-by: Bruno Oliveira <[email protected]> (cherry picked from commit ca35145) Co-authored-by: mwychung <[email protected]>
As follow up to #9947, add a dedicated page describing how to use types with pytest: how to type tests, fixtures, etc.
The text was updated successfully, but these errors were encountered: