generated from daniil-berg/boilerplate-py
29 lines
962 B
Python
29 lines
962 B
Python
|
from collections.abc import Callable
|
||
|
from unittest import TestCase
|
||
|
from unittest.mock import MagicMock, patch
|
||
|
|
||
|
from marshmallow_generic import decorators
|
||
|
|
||
|
|
||
|
class DecoratorsTestCase(TestCase):
|
||
|
@patch.object(decorators, "_post_load")
|
||
|
def test_post_load(self, mock_original_post_load: MagicMock) -> None:
|
||
|
mock_original_post_load.return_value = expected_output = object()
|
||
|
|
||
|
def test_function(x: int) -> str:
|
||
|
return str(x)
|
||
|
|
||
|
pass_many, pass_original = MagicMock(), MagicMock()
|
||
|
# Explicit annotation to possibly catch mypy errors:
|
||
|
output: Callable[[int], str] = decorators.post_load(
|
||
|
test_function,
|
||
|
pass_many=pass_many,
|
||
|
pass_original=pass_original,
|
||
|
)
|
||
|
self.assertIs(expected_output, output)
|
||
|
mock_original_post_load.assert_called_once_with(
|
||
|
test_function,
|
||
|
pass_many=pass_many,
|
||
|
pass_original=pass_original,
|
||
|
)
|