Implemented SheerkaOntology
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from core.sheerka.services.SheerkaFunctionsParametersHistory import SheerkaFunctionsParametersHistory, \
|
||||
FunctionParametersObj
|
||||
from core.utils import sheerka_deepcopy
|
||||
|
||||
from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
||||
|
||||
@@ -7,13 +10,15 @@ from tests.TestUsingMemoryBasedSheerka import TestUsingMemoryBasedSheerka
|
||||
class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
def test_i_can_add_a_parameter_value(self):
|
||||
sheerka, context = self.init_concepts(cache_only=False)
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize()
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
service.record_function_parameter(context, "function", 1, "10")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
service.record_function_parameter(context, "function", 3, "'string value'")
|
||||
|
||||
assert service.cache.copy() == {"function": FunctionParametersObj(
|
||||
assert sheerka.om.copy(service.FUNCTIONS_PARAMETERS_ENTRY) == {"function": FunctionParametersObj(
|
||||
context.event.get_digest(),
|
||||
"function",
|
||||
{
|
||||
@@ -23,8 +28,8 @@ class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
})}
|
||||
|
||||
# and i can serialize
|
||||
sheerka.cache_manager.commit(context)
|
||||
from_db = sheerka.sdp.get(SheerkaFunctionsParametersHistory.FUNCTIONS_PARAMETERS_ENTRY, "function")
|
||||
sheerka.om.commit(context)
|
||||
from_db = sheerka.om.current_sdp().get(service.FUNCTIONS_PARAMETERS_ENTRY, "function")
|
||||
assert from_db.event_id == context.event.get_digest()
|
||||
assert from_db.name == "function"
|
||||
assert from_db.params == {
|
||||
@@ -35,14 +40,16 @@ class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
|
||||
def test_i_can_add_the_same_value_multiple_times(self):
|
||||
sheerka, context = self.init_concepts(cache_only=True)
|
||||
service = SheerkaFunctionsParametersHistory(sheerka)
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
service.record_function_parameter(context, "function", 1, "10")
|
||||
service.record_function_parameter(context, "function", 1, "20")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
service.record_function_parameter(context, "function", 1, "20")
|
||||
|
||||
assert service.cache.copy() == {"function": FunctionParametersObj(
|
||||
assert sheerka.om.copy(service.FUNCTIONS_PARAMETERS_ENTRY) == {"function": FunctionParametersObj(
|
||||
context.event.get_digest(),
|
||||
"function",
|
||||
{
|
||||
@@ -52,12 +59,14 @@ class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
|
||||
def test_i_can_specify_parameter_in_any_order(self):
|
||||
sheerka, context = self.init_concepts()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka)
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
service.record_function_parameter(context, "function", 3, "'string value'")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
|
||||
assert service.cache.copy() == {"function": FunctionParametersObj(
|
||||
assert sheerka.om.copy(service.FUNCTIONS_PARAMETERS_ENTRY) == {"function": FunctionParametersObj(
|
||||
context.event.get_digest(),
|
||||
"function",
|
||||
{
|
||||
@@ -67,7 +76,9 @@ class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
|
||||
def test_no_value_is_managed(self):
|
||||
sheerka, context = self.init_concepts()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka)
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
# no entry for the function
|
||||
assert service.get_function_parameters("function", 2) == []
|
||||
@@ -78,10 +89,45 @@ class TestSheerkaFunctionsParametersHistory(TestUsingMemoryBasedSheerka):
|
||||
|
||||
def test_i_can_get_sorted_parameters(self):
|
||||
sheerka, context = self.init_concepts()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka)
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
service.record_function_parameter(context, "function", 2, "'string value'")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
|
||||
assert service.get_function_parameters("function", 2) == ["True", "'string value'"]
|
||||
|
||||
def test_i_can_add_and_retrieve_parameters_when_multiple_ontology_layers(self):
|
||||
sheerka, context = self.init_concepts(cache_only=False)
|
||||
sheerka.om.test_only_unfreeze()
|
||||
service = SheerkaFunctionsParametersHistory(sheerka).initialize() # since service is no longer auto init'ed
|
||||
sheerka.om.freeze()
|
||||
|
||||
service.record_function_parameter(context, "function", 1, "10")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
service.record_function_parameter(context, "function", 3, "'string value'")
|
||||
|
||||
sheerka.push_ontology(context, "new ontology")
|
||||
service.record_function_parameter(context, "function", 1, "20")
|
||||
service.record_function_parameter(context, "function", 2, "True")
|
||||
|
||||
assert sheerka.om.copy(service.FUNCTIONS_PARAMETERS_ENTRY) == {"function": FunctionParametersObj(
|
||||
context.event.get_digest(),
|
||||
"function",
|
||||
{
|
||||
1: [('10', 1), ("20", 1)],
|
||||
2: [('True', 2)],
|
||||
3: [("'string value'", 1)]
|
||||
})}
|
||||
|
||||
sheerka.pop_ontology()
|
||||
assert sheerka.om.copy(service.FUNCTIONS_PARAMETERS_ENTRY) == {"function": FunctionParametersObj(
|
||||
context.event.get_digest(),
|
||||
"function",
|
||||
{
|
||||
1: [('10', 1)],
|
||||
2: [('True', 1)],
|
||||
3: [("'string value'", 1)]
|
||||
})}
|
||||
|
||||
Reference in New Issue
Block a user