Refactored Caching, Refactored BnfNodeParser, Introduced Sphinx
This commit is contained in:
+18
-19
@@ -1,16 +1,15 @@
|
||||
import ast
|
||||
|
||||
import pytest
|
||||
|
||||
from core.ast.nodes import NodeParent, GenericNodeConcept
|
||||
import core.ast.nodes
|
||||
import pytest
|
||||
from core.ast.nodes import NodeParent, GenericNodeConcept
|
||||
from core.ast.visitors import ConceptNodeVisitor, UnreferencedNamesVisitor
|
||||
from core.builtin_concepts import BuiltinConcepts
|
||||
from core.sheerka.Sheerka import Sheerka
|
||||
|
||||
|
||||
def get_sheerka():
|
||||
sheerka = Sheerka(skip_builtins_in_db=True)
|
||||
sheerka = Sheerka(cache_only=True)
|
||||
sheerka.initialize("mem://")
|
||||
|
||||
return sheerka
|
||||
@@ -40,32 +39,32 @@ def my_function(a,b):
|
||||
sheerka = get_sheerka()
|
||||
|
||||
assert tree_as_concept.node_type == "Module"
|
||||
assert sheerka.isinstance(tree_as_concept.get_prop("body"), BuiltinConcepts.LIST)
|
||||
assert sheerka.isinstance(tree_as_concept.get_value("body"), BuiltinConcepts.LIST)
|
||||
|
||||
def_func = tree_as_concept.get_prop("body").body[0]
|
||||
def_func = tree_as_concept.get_value("body").body[0]
|
||||
assert sheerka.isinstance(def_func, BuiltinConcepts.GENERIC_NODE)
|
||||
assert def_func.node_type == "FunctionDef"
|
||||
assert def_func.parent == NodeParent(tree_as_concept, "body")
|
||||
assert def_func.get_prop("name") == "my_function"
|
||||
assert def_func.get_value("name") == "my_function"
|
||||
|
||||
def_func_args = def_func.get_prop("args")
|
||||
def_func_args = def_func.get_value("args")
|
||||
assert sheerka.isinstance(def_func_args, BuiltinConcepts.GENERIC_NODE)
|
||||
assert def_func_args.node_type == "arguments"
|
||||
|
||||
def_func_args_real_args = def_func_args.get_prop("args")
|
||||
def_func_args_real_args = def_func_args.get_value("args")
|
||||
assert sheerka.isinstance(def_func_args_real_args, BuiltinConcepts.LIST)
|
||||
assert len(def_func_args_real_args.body) == 2
|
||||
|
||||
assert sheerka.isinstance(def_func_args_real_args.body[0], BuiltinConcepts.GENERIC_NODE)
|
||||
assert def_func_args_real_args.body[0].node_type == "arg"
|
||||
assert def_func_args_real_args.body[0].parent == NodeParent(def_func_args, "args")
|
||||
assert def_func_args_real_args.body[0].get_prop("arg") == "a"
|
||||
assert def_func_args_real_args.body[0].get_value("arg") == "a"
|
||||
assert sheerka.isinstance(def_func_args_real_args.body[1], BuiltinConcepts.GENERIC_NODE)
|
||||
assert def_func_args_real_args.body[1].node_type == "arg"
|
||||
assert def_func_args_real_args.body[1].parent == NodeParent(def_func_args, "args")
|
||||
assert def_func_args_real_args.body[1].get_prop("arg") == "b"
|
||||
assert def_func_args_real_args.body[1].get_value("arg") == "b"
|
||||
|
||||
def_fun_body = def_func.get_prop("body")
|
||||
def_fun_body = def_func.get_value("body")
|
||||
assert sheerka.isinstance(def_fun_body, BuiltinConcepts.LIST)
|
||||
assert len(def_fun_body.body) == 2
|
||||
|
||||
@@ -95,13 +94,13 @@ def my_function(a,b):
|
||||
visitor.visit(concept_node)
|
||||
|
||||
sheerka = get_sheerka()
|
||||
assert sheerka.value(visitor.names[0]) == "i"
|
||||
assert sheerka.value(visitor.names[1]) == "range"
|
||||
assert sheerka.value(visitor.names[2]) == "b"
|
||||
assert sheerka.value(visitor.names[3]) == "a"
|
||||
assert sheerka.value(visitor.names[4]) == "a"
|
||||
assert sheerka.value(visitor.names[5]) == "b"
|
||||
assert sheerka.value(visitor.names[6]) == "a"
|
||||
assert sheerka.objvalue(visitor.names[0]) == "i"
|
||||
assert sheerka.objvalue(visitor.names[1]) == "range"
|
||||
assert sheerka.objvalue(visitor.names[2]) == "b"
|
||||
assert sheerka.objvalue(visitor.names[3]) == "a"
|
||||
assert sheerka.objvalue(visitor.names[4]) == "a"
|
||||
assert sheerka.objvalue(visitor.names[5]) == "b"
|
||||
assert sheerka.objvalue(visitor.names[6]) == "a"
|
||||
|
||||
|
||||
def test_i_can_get_unreferenced_variables():
|
||||
|
||||
Reference in New Issue
Block a user