Skip to content

Allow for easier import of mocker.Mock | mocker.MagicMock types #414

Closed
@Kilo59

Description

I want to be able to import Mock and MagicMock types for type annotations.

I don't want to have to import from unittest.mock because I am enforcing the use of pytest-mock by banning the import of unittest.mock.

from typing import TYPE_CHECKING

import pytest

if TYPE_CHECKING:
  from pytest_mock import Mock, MagicMock, MockerFixture

@pytest.fixtue
def my_mock(mocker: MockerFixture) -> Mock:
   return mocker.Mock()


@pytest.fixtue
def my_magic_mock(mocker: MockerFixture) -> MagicMock:
   return mocker.MagicMock()


def test_something(my_mock: Mock):
   ...

I see 2 different approaches here.

  1. "Export" unittest.mock Mock + MagicMock in the top-level __init__ file
  2. Add a pytest_mock.types subpackage. This could also include things like ANY which would otherwise need to be imported from unittest.mock.

1 could be an issue because it might encourage users to use the Mock/Mocker as more than just type-annotations.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions