57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
from os import path
|
|
|
|
import pytest
|
|
|
|
from base import UsingFileBasedSheerka
|
|
from core.concept import ConceptDefaultProps
|
|
from helpers import get_concept, get_concepts, get_file_content
|
|
|
|
|
|
class TestSheerka(UsingFileBasedSheerka):
|
|
|
|
def test_i_can_initialize_sheerka(self, sheerka_fb):
|
|
sheerka = sheerka_fb
|
|
assert path.exists(self.SHEERKA_ROOT_DIR)
|
|
|
|
last_event_path = path.join(self.SHEERKA_ROOT_DIR, "LAST_EVENT")
|
|
assert path.exists(last_event_path)
|
|
|
|
last_event_digest = get_file_content(last_event_path)
|
|
last_event_folder = path.join(self.SHEERKA_ROOT_DIR, "events", last_event_digest[:24], last_event_digest)
|
|
assert path.exists(last_event_folder)
|
|
assert path.exists(last_event_folder + "_admin_context")
|
|
|
|
assert len(sheerka.services) > 0
|
|
assert len(sheerka.evaluators) > 0
|
|
|
|
# add test to validate that we can access bind methods
|
|
|
|
def test_i_can_use_isinstance(self, sheerka, context):
|
|
foo, bar = get_concepts(context, "foo", "bar", use_sheerka=True)
|
|
assert sheerka.isinstance(foo, foo.key)
|
|
assert sheerka.isinstance(foo, foo.str_id)
|
|
assert sheerka.isinstance(foo, foo)
|
|
assert sheerka.isinstance(foo, foo.get_metadata())
|
|
|
|
assert not sheerka.isinstance(foo, bar.key)
|
|
assert not sheerka.isinstance(foo, bar.str_id)
|
|
assert not sheerka.isinstance(foo, bar)
|
|
assert not sheerka.isinstance(foo, bar.get_metadata())
|
|
|
|
@pytest.mark.parametrize("obj, expected", [
|
|
(None, None),
|
|
(1, 1),
|
|
])
|
|
def test_i_can_get_obj_value(self, sheerka, context, obj, expected):
|
|
assert sheerka.objvalue(obj) == expected
|
|
|
|
def test_i_can_get_obj_value_for_concept(self, sheerka, context):
|
|
foo = get_concept("foo")
|
|
bar = get_concept("bar")
|
|
bar.set_value(ConceptDefaultProps.BODY, 1)
|
|
foo.set_value(ConceptDefaultProps.BODY, bar)
|
|
foo.get_runtime_info().is_evaluated = True
|
|
bar.get_runtime_info().is_evaluated = True
|
|
|
|
assert sheerka.objvalue(foo) == 1
|