I can define and eval BNF definitions

This commit is contained in:
2019-12-17 21:19:44 +01:00
parent c668cc46d2
commit 88cd3162be
25 changed files with 1099 additions and 569 deletions
+73 -3
View File
@@ -754,7 +754,7 @@ def test_i_can_set_using_reference(root):
".sheerka",
"mem://"
])
def test_i_can_add_reference_of_an_object_with_a_key(root):
def test_i_can_add_an_object_with_a_key_as_a_reference(root):
sdp = SheerkaDataProvider(root)
obj = ObjDumpJson("my_key", "value1")
obj_serializer = ObjectSerializer(core.utils.get_full_qualified_name(obj))
@@ -777,7 +777,7 @@ def test_i_can_add_reference_of_an_object_with_a_key(root):
".sheerka",
"mem://"
])
def test_i_can_add_reference_a_dictionary(root):
def test_i_can_add_a_dictionary_as_a_reference(root):
sdp = SheerkaDataProvider(root)
obj = {"my_key": "value1"}
@@ -1403,7 +1403,7 @@ def test_i_can_get_an_entry_by_key(root):
".sheerka",
"mem://"
])
def test_i_can_get_object_save_by_reference(root):
def test_i_can_get_object_saved_by_reference(root):
sdp = SheerkaDataProvider(root)
obj = ObjDumpJson("my_key", "value1")
sdp.serializer.register(ObjectSerializer(core.utils.get_full_qualified_name(obj)))
@@ -1687,3 +1687,73 @@ def test_i_can_add_obj_with_same_key_and_get_them_back(root):
assert len(loaded) == 2
assert loaded[0] == obj1
assert loaded[1] == obj2
@pytest.mark.parametrize("root", [
".sheerka",
"mem://"
])
def test_i_get_safe_dictionary_without_origin(root):
sdp = SheerkaDataProvider(root)
obj = {"my_key": "value1"}
obj_serializer = ObjectSerializer(core.utils.get_full_qualified_name(obj))
sdp.serializer.register(obj_serializer)
entry, key = sdp.add(evt_digest, "entry", obj, use_ref=True)
from_db = sdp.get_safe(entry, key)
assert len(from_db) == 2
assert from_db["my_key"] == obj["my_key"]
assert Serializer.ORIGIN in from_db
from_db_no_origin = sdp.get_safe(entry, key, load_origin=False)
assert len(from_db_no_origin) == 1
assert from_db_no_origin["my_key"] == obj["my_key"]
assert Serializer.ORIGIN not in from_db_no_origin
@pytest.mark.parametrize("root", [
".sheerka",
"mem://"
])
def test_i_get_dictionary_without_origin(root):
sdp = SheerkaDataProvider(root)
obj = {"my_key": "value1"}
obj_serializer = ObjectSerializer(core.utils.get_full_qualified_name(obj))
sdp.serializer.register(obj_serializer)
entry, key = sdp.add(evt_digest, "entry", obj, use_ref=True)
from_db = sdp.get(entry, key)
assert len(from_db) == 2
assert from_db["my_key"] == obj["my_key"]
assert Serializer.ORIGIN in from_db
from_db_no_origin = sdp.get(entry, key, load_origin=False)
assert len(from_db_no_origin) == 1
assert from_db_no_origin["my_key"] == obj["my_key"]
assert Serializer.ORIGIN not in from_db_no_origin
@pytest.mark.parametrize("root", [
".sheerka",
"mem://"
])
def test_i_get_safe_object_without_origin(root):
sdp = SheerkaDataProvider(root)
obj = ObjDumpJson("my_key", "value1")
obj_serializer = ObjectSerializer(core.utils.get_full_qualified_name(obj))
sdp.serializer.register(obj_serializer)
entry, key = sdp.add(evt_digest, "entry", obj, use_ref=True)
from_db = sdp.get_safe(entry, key)
assert from_db == obj
assert hasattr(from_db, Serializer.ORIGIN)
from_db_no_origin = sdp.get_safe(entry, key, load_origin=False)
assert from_db_no_origin == obj
assert not hasattr(from_db_no_origin, Serializer.ORIGIN)