Added first version of DebugManager. Implemented draft of the rule engine
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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
|
||||
Reference in New Issue
Block a user