import dataclasses
import typing
import pytest
@dataclasses.dataclass
class User:
name: str
create_user_type = typing.Callable[[str], User]
@pytest.fixture()
def create_user() -> create_user_type:
def fixture(name: str) -> User:
return User(name)
return fixture
def test_user(create_user: create_user_type):
user = create_user('foo')
assert isinstance(user, User)
assert user.name == 'foo'