from conftest import SHEERKA_TEST_FOLDER 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 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().body.body ontology.cache_manager.sdp.test_only_destroy_refs() @staticmethod def new_sheerka_instance(cache_only): sheerka = Sheerka(cache_only=cache_only) sheerka.initialize(SHEERKA_TEST_FOLDER, save_execution_context=False, enable_process_return_values=False) 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