Implemented SheerkaOntology
This commit is contained in:
@@ -1,42 +1,33 @@
|
||||
from core.concept import ALL_ATTRIBUTES
|
||||
from core.sheerka.Sheerka import Sheerka
|
||||
from core.sheerka.SheerkaOntologyManager import SheerkaOntologyManager
|
||||
|
||||
from tests.BaseTest import BaseTest
|
||||
|
||||
|
||||
class TestUsingMemoryBasedSheerka(BaseTest):
|
||||
singleton_instance = None
|
||||
dump = None
|
||||
sheerka = None
|
||||
context = None
|
||||
root_ontology_name = SheerkaOntologyManager.ROOT_ONTOLOGY_NAME
|
||||
|
||||
def teardown_method(self, method):
|
||||
# to do after the test
|
||||
if TestUsingMemoryBasedSheerka.sheerka:
|
||||
while TestUsingMemoryBasedSheerka.sheerka.om.current_ontology().name != self.root_ontology_name:
|
||||
TestUsingMemoryBasedSheerka.sheerka.pop_ontology()
|
||||
|
||||
@staticmethod
|
||||
def _inner_get_sheerka(cache_only):
|
||||
ALL_ATTRIBUTES.clear()
|
||||
def new_sheerka_instance(cache_only):
|
||||
sheerka = Sheerka(cache_only=cache_only)
|
||||
sheerka.initialize("mem://", save_execution_context=False, enable_process_return_values=False)
|
||||
return sheerka
|
||||
|
||||
def get_sheerka(self, **kwargs):
|
||||
def get_sheerka(self, **kwargs) -> Sheerka:
|
||||
cache_only = kwargs.get("cache_only", True)
|
||||
use_singleton = kwargs.get("singleton", True)
|
||||
reset_attrs = kwargs.get("reset_attrs", True)
|
||||
ontology_name = kwargs.get("ontology", "#unit_test#") or "#unit_test#"
|
||||
|
||||
sheerka = kwargs.get("sheerka", None)
|
||||
if sheerka:
|
||||
return sheerka
|
||||
if TestUsingMemoryBasedSheerka.sheerka is None:
|
||||
TestUsingMemoryBasedSheerka.sheerka = self.new_sheerka_instance(False)
|
||||
TestUsingMemoryBasedSheerka.context = self.get_context(TestUsingMemoryBasedSheerka.sheerka)
|
||||
|
||||
if reset_attrs:
|
||||
ALL_ATTRIBUTES.clear()
|
||||
|
||||
if use_singleton:
|
||||
singleton_instance = TestUsingMemoryBasedSheerka.singleton_instance
|
||||
if singleton_instance:
|
||||
singleton_instance.reset(cache_only)
|
||||
singleton_instance.cache_manager.init_from_dump(TestUsingMemoryBasedSheerka.dump)
|
||||
return singleton_instance
|
||||
else:
|
||||
new_instance = self._inner_get_sheerka(cache_only)
|
||||
TestUsingMemoryBasedSheerka.dump = new_instance.cache_manager.dump()
|
||||
TestUsingMemoryBasedSheerka.singleton_instance = new_instance
|
||||
return TestUsingMemoryBasedSheerka.singleton_instance
|
||||
|
||||
return self._inner_get_sheerka(cache_only)
|
||||
self.sheerka.push_ontology(self.context, ontology_name, cache_only=cache_only)
|
||||
return self.sheerka
|
||||
|
||||
Reference in New Issue
Block a user