Added bnf when adding a new concept + Started logging filtering

This commit is contained in:
2019-12-13 20:26:11 +01:00
parent 75c8793d53
commit c668cc46d2
29 changed files with 1487 additions and 190 deletions
+20 -1
View File
@@ -1,5 +1,7 @@
import ast
import pytest
from core.ast.nodes import NodeParent, GenericNodeConcept
import core.ast.nodes
from core.ast.visitors import ConceptNodeVisitor, UnreferencedNamesVisitor
@@ -102,7 +104,7 @@ def my_function(a,b):
assert sheerka.value(visitor.names[6]) == "a"
def test_i_can_get_non_referenced_variables():
def test_i_can_get_unreferenced_variables():
source = """
def my_function(a,b):
for i in range(b):
@@ -126,6 +128,23 @@ my_function(x,y)
assert "y" in values
@pytest.mark.parametrize("source, expected", [
("a,b", ["a", "b"]),
("isinstance(a, int)", ["a", "int"])
])
def test_i_can_get_unreferenced_variables_from_simple_expressions(source, expected):
sheerka = get_sheerka()
node = ast.parse(source)
concept_node = core.ast.nodes.python_to_concept(node)
visitor = UnreferencedNamesVisitor(sheerka)
visitor.visit(concept_node)
assert sorted(list(visitor.names)) == expected
def test_i_can_compare_NodeParent_with_tuple():
node_parent = NodeParent(GenericNodeConcept("For", None), "target")
assert node_parent == ("For", "target")