031bd0274e
Fixed #44 : BnfNodeParser: I must simplify results when multiple levels of ISA Fixed #45 : Dynamic variables cannot be parsed at restart Fixed #46 : Concepts variables values are transformed into list by default Fixed #47 : SheerkaAdmin. Add min, max, mean time when restoring files
48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
from conftest import SHEERKA_TEST_FOLDER
|
|
from core.global_symbols import EVENT_ONTOLOGY_CREATED
|
|
from core.sheerka.Sheerka import Sheerka
|
|
from core.sheerka.SheerkaOntologyManager import SheerkaOntologyManager
|
|
|
|
from tests.BaseTest import BaseTest
|
|
|
|
|
|
class TestUsingFileBasedSheerka(BaseTest):
|
|
sheerka = None
|
|
context = None
|
|
root_ontology_name = SheerkaOntologyManager.ROOT_ONTOLOGY_NAME
|
|
|
|
ontologies_created = set()
|
|
|
|
def teardown_method(self, method):
|
|
# to do after the test
|
|
if TestUsingFileBasedSheerka.sheerka:
|
|
while TestUsingFileBasedSheerka.sheerka.om.current_ontology().name != self.root_ontology_name:
|
|
ontology = TestUsingFileBasedSheerka.sheerka.pop_ontology(self.context).body.body
|
|
ontology.cache_manager.sdp.test_only_destroy_refs()
|
|
|
|
# remove other created ontologies
|
|
for ontology in TestUsingFileBasedSheerka.ontologies_created:
|
|
TestUsingFileBasedSheerka.sheerka.om.current_sdp().test_only_destroy_refs(ontology)
|
|
TestUsingFileBasedSheerka.ontologies_created.clear()
|
|
|
|
@staticmethod
|
|
def new_sheerka_instance(cache_only=False):
|
|
sheerka = Sheerka(cache_only=cache_only)
|
|
sheerka.initialize(SHEERKA_TEST_FOLDER,
|
|
save_execution_context=False,
|
|
enable_process_return_values=False,
|
|
enable_process_rules=False)
|
|
sheerka.subscribe(EVENT_ONTOLOGY_CREATED, lambda c, o: TestUsingFileBasedSheerka.ontologies_created.add(o))
|
|
return sheerka
|
|
|
|
def get_sheerka(self, **kwargs) -> Sheerka:
|
|
cache_only = kwargs.get("cache_only", False)
|
|
ontology_name = kwargs.get("ontology", "#unit_test#") or "#unit_test#"
|
|
|
|
if TestUsingFileBasedSheerka.sheerka is None:
|
|
TestUsingFileBasedSheerka.sheerka = self.new_sheerka_instance(False)
|
|
TestUsingFileBasedSheerka.context = self.get_context(TestUsingFileBasedSheerka.sheerka)
|
|
|
|
self.sheerka.push_ontology(self.context, ontology_name, cache_only=cache_only)
|
|
return TestUsingFileBasedSheerka.sheerka
|