def test_yield_from_correct_type(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Ensure that `yield from` works with correct types."""
    tree = parse_ast_tree(yield_from_template.format(code))

    visitor = GeneratorKeywordsVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
Exemple #2
0
def test_yield_correct_sync(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Ensure that `yield` can be used correctly."""
    tree = parse_ast_tree(code)

    visitor = GeneratorKeywordsVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
def test_yield_from_incorrect_type(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Ensure that `yield from` does not work with incorrect types."""
    tree = parse_ast_tree(yield_from_template.format(code))

    visitor = GeneratorKeywordsVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [IncorrectYieldFromTargetViolation])
Exemple #4
0
def test_yield_inccorect(
    assert_errors,
    parse_ast_tree,
    code,
    mode,
    default_options,
):
    """Ensure that `yield` cannot follow the same node."""
    tree = parse_ast_tree(mode(code))

    visitor = GeneratorKeywordsVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [ConsecutiveYieldsViolation])