Files
Sheerka-Old/tests/core/test_ast_helper.py
T

45 lines
1.4 KiB
Python

import ast
import pytest
from core.ast_helpers import UnreferencedNamesVisitor, UnreferencedVariablesVisitor
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
class TestAstHelper(TestUsingMemoryBasedSheerka):
@pytest.mark.parametrize("source, expected", [
("a,b", {"a", "b"}),
("isinstance(a, int)", {"isinstance", "a", "int"}),
("date.today()", {"date"}),
("test()", {"test"}),
("sheerka.test()", {"sheerka"}),
("for i in range(10): pass", set())
])
def test_i_can_get_unreferenced_names_from_simple_expressions(self, source, expected):
context = self.get_context()
ast_ = ast.parse(source)
visitor = UnreferencedNamesVisitor(context)
visitor.visit(ast_)
assert visitor.names == expected
@pytest.mark.parametrize("source, expected", [
("a,b", {"a", "b"}),
("isinstance(a, int)", {"a", "int"}),
("date.today()", set()),
("test()", set()),
("sheerka.test()", set()),
("for i in range(10): pass", set())
])
def test_i_can_get_unreferenced_variables_from_simple_expressions(self, source, expected):
context = self.get_context()
ast_ = ast.parse(source)
visitor = UnreferencedVariablesVisitor(context)
visitor.visit(ast_)
assert visitor.names == expected