Files
Sheerka-Old/tests/TestUsingMemoryBasedSheerka.py
T

37 lines
1.4 KiB
Python

from core.sheerka.Sheerka import Sheerka
from tests.BaseTest import BaseTest
class TestUsingMemoryBasedSheerka(BaseTest):
singleton_instance = None
builtin_concepts = {}
@staticmethod
def _inner_get_sheerka(skip_builtins_in_db):
sheerka = Sheerka(skip_builtins_in_db=skip_builtins_in_db)
sheerka.initialize("mem://")
return sheerka
def get_sheerka(self, **kwargs):
skip_builtins_in_db = kwargs.get("skip_builtins_in_db", True)
use_singleton = kwargs.get("singleton", False)
sheerka = kwargs.get("sheerka", None)
if sheerka:
return sheerka
if use_singleton:
singleton_instance = TestUsingMemoryBasedSheerka.singleton_instance
if singleton_instance:
singleton_instance.reset()
singleton_instance.cache_by_key.update(TestUsingMemoryBasedSheerka.builtin_concepts) # quicker ?
# singleton_instance.cache_by_key = TestUsingMemoryBasedSheerka.builtin_concepts
return singleton_instance
else:
new_instance = self._inner_get_sheerka(skip_builtins_in_db)
TestUsingMemoryBasedSheerka.builtin_concepts.update(new_instance.cache_by_key)
TestUsingMemoryBasedSheerka.singleton_instance = new_instance
return TestUsingMemoryBasedSheerka.singleton_instance
return self._inner_get_sheerka(skip_builtins_in_db)