Files
Sheerka-Old/tests/TestUsingMemoryBasedSheerka.py
T

43 lines
1.5 KiB
Python

from core.concept import ALL_ATTRIBUTES
from core.sheerka.Sheerka import Sheerka
from tests.BaseTest import BaseTest
class TestUsingMemoryBasedSheerka(BaseTest):
singleton_instance = None
dump = None
@staticmethod
def _inner_get_sheerka(cache_only):
ALL_ATTRIBUTES.clear()
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):
cache_only = kwargs.get("cache_only", True)
use_singleton = kwargs.get("singleton", True)
reset_attrs = kwargs.get("reset_attrs", True)
sheerka = kwargs.get("sheerka", None)
if sheerka:
return 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)