def test_import_typing(import_code: str, call_code: str, ref_value: bool,
                       namedtuple_checker: TypingNamedTupleChecker) -> None:
    node = astroid.extract_node(import_code)
    namedtuple_checker.visit_import(node)
    node = astroid.extract_node(call_code)
    assert (namedtuple_checker._visit_call(node.value if isinstance(
        node, astroid.node_classes.Assign) else node) is ref_value)
def test_multiple_modules_typing(
        namedtuple_checker: TypingNamedTupleChecker,
        modules: Iterable[Tuple[str, str, bool]]) -> None:
    for import_code, call_code, ref_value in modules:
        node = astroid.extract_node(import_code)
        node.parent = astroid.Module("module ", None)
        namedtuple_checker.visit_module(node.parent)
        namedtuple_checker.visit_import(node)
        node = astroid.extract_node(call_code)
        assert (namedtuple_checker._visit_call(node.value if isinstance(
            node, astroid.node_classes.Assign) else node) is ref_value)
示例#3
0
def test_function_as_argument_name(
        import_code: str, call_code: str, ref_value: bool,
        namedtuple_checker: TypingNamedTupleChecker) -> None:
    node = astroid.extract_node(import_code)
    namedtuple_checker.visit_importfrom(node)
    node = astroid.extract_node(call_code)
    value = False
    for arg in node.args:
        if namedtuple_checker._called_with_library(
                arg) or namedtuple_checker._called_directly(arg):
            value = True
    assert value is ref_value
def namedtuple_checker_fixture() -> TypingNamedTupleChecker:
    return TypingNamedTupleChecker(None)