def test_parameter(): def test(number: int) -> int: # pragma: no cover pass method = ComponentMethod(test) argument = method.get_argument('number') parameter = argument.parameter assert parameter.name == 'number' assert parameter.annotation == int assert parameter.kind == parameter.POSITIONAL_OR_KEYWORD
def test_default(): def test(number: int) -> int: # pragma: no cover pass method = ComponentMethod(test) argument = method.get_argument('number') with pytest.raises(ArgumentDoesNotHaveDefault) as exception: argument.get_default() assert str(exception.value) == f'{argument} does not have get_default'
def test_is_supported_in_page_position_argument_resolver( argument_type, expected_is_supported): def func(arg1: argument_type): # pragma: no cover return arg1 method = ComponentMethod(func) argument = method.get_argument('arg1') resolver = PagePositionArgumentResolver() # Act is_supported = resolver.is_supported(argument) # Assert assert is_supported == expected_is_supported, argument.type_
def test_resolve_argument_fails_in_page_position_argument_resolver( query_string, exception_type, message): def func(arg1: int): return arg1 method = ComponentMethod(func) argument = method.get_argument('arg1') request = Mock(spec=DRFRequest) request.query_params = QueryDict(query_string) resolver = PagePositionArgumentResolver() # Assert with pytest.raises(exception_type) as exception_info: # Act resolver.resolve_argument(argument, request) assert exception_info.value.args[0] == message
def test_resolve_argument_ok_in_page_position_argument_resolver( query_string, expected_page_position): def func(arg1: int): return arg1 method = ComponentMethod(func) argument = method.get_argument('arg1') resolver = PagePositionArgumentResolver() request = Mock(spec=DRFRequest) request.query_params = QueryDict(query_string) # Act page_position = resolver.resolve_argument(argument, request) # Assert assert page_position == expected_page_position
def test_arguments_resolver_is_supported_true(): def func(self, argument: int): return None def resolve_argument(argument: ComponentMethodArgument, http_request): return argument.type_ arguments_resolver = ArgumentsResolver() resolver = GenericArgumentResolver( arg_name='argument', arg_type=int, resolve_argument=resolve_argument, ) arguments_resolver.add_argument_resolver(resolver) method = ComponentMethod(func) argument = method.get_argument('argument') request = get_request() # Assert assert arguments_resolver.is_supported(argument) assert arguments_resolver.resolve_argument(argument, request) == argument.type_