First version of explain. Creating a new parser was a wrong approach. Need to reimplement
This commit is contained in:
@@ -1,16 +1,15 @@
|
||||
import hashlib
|
||||
|
||||
import pytest
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
from datetime import date, datetime
|
||||
from os import path
|
||||
|
||||
import core.utils
|
||||
import pytest
|
||||
from sdp.sheerkaDataProvider import SheerkaDataProvider, Event, SheerkaDataProviderError, \
|
||||
SheerkaDataProviderDuplicateKeyError, SheerkaDataProviderResult, SheerkaDataProviderRef
|
||||
from datetime import date, datetime
|
||||
import shutil
|
||||
import json
|
||||
|
||||
from sdp.sheerkaSerializer import JsonSerializer, Serializer, PickleSerializer
|
||||
import core.utils
|
||||
|
||||
tests_root = path.abspath("../../build/tests")
|
||||
evt_digest = "3a571cb6034ef6fc8d7fe91948d0d29728eed74de02bac7968b0e9facca2c2d7"
|
||||
@@ -1021,14 +1020,14 @@ def test_i_can_set_a_reference(root):
|
||||
def test_i_cannot_set_using_use_ref_and_is_ref():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
|
||||
with pytest.raises(SheerkaDataProviderError) as error:
|
||||
with pytest.raises(SheerkaDataProviderError):
|
||||
sdp.set(evt_digest, "entry", ObjWithDigestWithKey("a", "b"), use_ref=True, is_ref=True)
|
||||
|
||||
|
||||
def test_i_cannot_set_using_is_ref_if_obj_is_not_a_dictionary():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
|
||||
with pytest.raises(SheerkaDataProviderError) as error:
|
||||
with pytest.raises(SheerkaDataProviderError):
|
||||
sdp.set(evt_digest, "entry", ObjWithDigestWithKey("a", "b"), is_ref=True)
|
||||
|
||||
|
||||
@@ -1435,8 +1434,17 @@ def test_i_can_remove_when_only_one_element(root):
|
||||
def test_i_cannot_remove_if_entry_does_not_exist(root):
|
||||
sdp = SheerkaDataProvider(root)
|
||||
with pytest.raises(IndexError) as e:
|
||||
sdp.remove(evt_digest, "entry")
|
||||
assert str(e) == "entry"
|
||||
sdp.remove(evt_digest, "entry", silent_remove=False)
|
||||
assert str(e.value) == "entry"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("root", [
|
||||
".sheerka",
|
||||
"mem://"
|
||||
])
|
||||
def test_no_exception_is_raise_when_remove_in_silent_mode(root):
|
||||
sdp = SheerkaDataProvider(root)
|
||||
sdp.remove(evt_digest, "entry", silent_remove=True) # default
|
||||
|
||||
|
||||
@pytest.mark.parametrize("root", [
|
||||
@@ -1773,7 +1781,7 @@ def test_i_cannot_modify_a_key_that_does_not_exist(root):
|
||||
|
||||
with pytest.raises(IndexError) as e:
|
||||
sdp.modify(evt_digest, "entry1", "2", "bar")
|
||||
assert str(e) == "entry1.2"
|
||||
assert str(e.value) == "entry1.2"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("root", [
|
||||
@@ -1938,7 +1946,7 @@ def test_i_cannot_get_an_entry_that_does_not_exist(root):
|
||||
assert sdp.get_safe("entry") is None
|
||||
with pytest.raises(IndexError) as e:
|
||||
sdp.get("entry")
|
||||
assert str(e) == "entry"
|
||||
assert str(e.value) == "entry"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("root", [
|
||||
@@ -1952,7 +1960,7 @@ def test_i_cannot_get_a_key_that_does_not_exist(root):
|
||||
assert sdp.get_safe("entry1", "2") is None
|
||||
with pytest.raises(IndexError) as e:
|
||||
sdp.get("entry1", "2")
|
||||
assert str(e) == "entry.1"
|
||||
assert str(e.value) == "entry1.2"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("root", [
|
||||
@@ -2257,3 +2265,50 @@ def test_i_get_safe_object_without_origin(root):
|
||||
from_db_no_origin = sdp.get_safe(result.entry, result.key, load_origin=False)
|
||||
assert from_db_no_origin == obj
|
||||
assert not hasattr(from_db_no_origin, Serializer.ORIGIN)
|
||||
|
||||
|
||||
def test_i_can_get_ref():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
obj = ObjDumpJson("my_key", "value1")
|
||||
|
||||
obj_serializer = JsonSerializer(core.utils.get_full_qualified_name(obj))
|
||||
sdp.serializer.register(obj_serializer)
|
||||
|
||||
result = sdp.add(evt_digest, "entry", obj, use_ref=True)
|
||||
|
||||
ref = sdp.get_ref(result.entry, result.key)
|
||||
assert ref == "076f0df0f110c304982242a88088efacce71f361e49f065db75919a7f72c2821"
|
||||
|
||||
|
||||
def test_i_can_get_ref_when_list():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
|
||||
obj_serializer = JsonSerializer(core.utils.get_full_qualified_name(ObjDumpJson))
|
||||
sdp.serializer.register(obj_serializer)
|
||||
|
||||
sdp.add(evt_digest, "entry", ObjDumpJson("my_key", "value1"), use_ref=True)
|
||||
result = sdp.add(evt_digest, "entry", ObjDumpJson("my_key", "value2"), use_ref=True)
|
||||
|
||||
ref = sdp.get_ref(result.entry, result.key)
|
||||
assert ref == [
|
||||
"076f0df0f110c304982242a88088efacce71f361e49f065db75919a7f72c2821",
|
||||
"e6bf5b56428cfce0f08c94f2c3625dc3b3a8180d7229eaa9f8aa967fb16e5256"
|
||||
]
|
||||
|
||||
|
||||
def test_i_cannot_get_ref_if_the_saved_item_is_not_a_ref():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
obj = ObjDumpJson("my_key", "value1")
|
||||
result = sdp.add(evt_digest, "entry", obj, use_ref=False)
|
||||
|
||||
with pytest.raises(SheerkaDataProviderError) as e:
|
||||
sdp.get_ref(result.entry, result.key)
|
||||
|
||||
assert e.value.args[0] == "Not a reference"
|
||||
assert e.value.obj == f"{result.entry}.{result.key}"
|
||||
|
||||
|
||||
def test_i_cannot_get_ref_if_the_item_does_not_exist():
|
||||
sdp = SheerkaDataProvider("mem://")
|
||||
with pytest.raises(IndexError):
|
||||
sdp.get_ref("fake", "fake")
|
||||
|
||||
Reference in New Issue
Block a user