37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
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):
|
|
sheerka = Sheerka(cache_only=cache_only)
|
|
sheerka.initialize("mem://", save_execution_context=False)
|
|
return sheerka
|
|
|
|
def get_sheerka(self, **kwargs):
|
|
cache_only = kwargs.get("cache_only", True)
|
|
use_singleton = kwargs.get("singleton", True)
|
|
|
|
sheerka = kwargs.get("sheerka", None)
|
|
if sheerka:
|
|
return sheerka
|
|
|
|
if use_singleton:
|
|
singleton_instance = TestUsingMemoryBasedSheerka.singleton_instance
|
|
if singleton_instance:
|
|
singleton_instance.reset(cache_only)
|
|
singleton_instance.cache_manager.init_from(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)
|