Refactored to allow ConceptEvaluator

This commit is contained in:
2019-11-14 22:04:38 +01:00
parent 576ce77740
commit 9e10e77737
30 changed files with 2406 additions and 1007 deletions
+68 -7
View File
@@ -122,7 +122,7 @@ class ObjWithDigestNoKey:
self.b == obj.b
def __repr__(self):
return f"ObjNoKey({self.a}, {self.b})"
return f"ObjWithDigestNoKey({self.a}, {self.b})"
def get_digest(self):
return str(self.a) + str(self.b)
@@ -142,7 +142,7 @@ class ObjWithDigestWithKey:
self.b == obj.b
def __repr__(self):
return f"ObjNoKey({self.a}, {self.b})"
return f"ObjWithDigestWithKey({self.a}, {self.b})"
def get_key(self):
return self.a
@@ -466,7 +466,7 @@ def test_i_cannot_add_the_same_digest_twice_in_the_same_entry():
assert error.value.obj.get_digest() == ObjWithDigestNoKey("a", "b").get_digest()
assert error.value.key == "entry"
assert error.value.args[0] == "duplicate key"
assert error.value.args[0] == "Duplicate object."
def test_i_cannot_add_the_same_digest_twice_in_the_same_entry2():
@@ -483,7 +483,7 @@ def test_i_cannot_add_the_same_digest_twice_in_the_same_entry2():
assert error.value.obj.get_digest() == ObjWithDigestNoKey("a", "b").get_digest()
assert error.value.key == "entry"
assert error.value.args[0] == "duplicate key"
assert error.value.args[0] == "Duplicate object."
def test_i_cannot_add_the_same_digest_twice_in_the_same_entry3():
@@ -499,7 +499,7 @@ def test_i_cannot_add_the_same_digest_twice_in_the_same_entry3():
assert error.value.obj.get_digest() == ObjWithDigestWithKey("a", "b").get_digest()
assert error.value.key == "entry.a"
assert error.value.args[0] == "duplicate key"
assert error.value.args[0] == "Duplicate object."
def test_i_cannot_add_the_same_digest_twice_in_the_same_entry4():
@@ -516,7 +516,7 @@ def test_i_cannot_add_the_same_digest_twice_in_the_same_entry4():
assert error.value.obj.get_digest() == ObjWithDigestWithKey("a", "b").get_digest()
assert error.value.key == "entry.a"
assert error.value.args[0] == "duplicate key"
assert error.value.args[0] == "Duplicate object."
def test_i_can_get_and_set_key():
@@ -1198,7 +1198,7 @@ def test_i_can_remove_from_cache():
assert not sdp.in_cache(category, key)
def test_i_can_test_than_an_entry_exits():
def test_i_can_test_than_an_entry_exists():
sdp = SheerkaDataProvider(".sheerka")
assert not sdp.exists("entry")
@@ -1206,6 +1206,67 @@ def test_i_can_test_than_an_entry_exits():
assert sdp.exists("entry")
def test_i_can_test_if_a_key_exists():
sdp = SheerkaDataProvider(".sheerka")
obj = ObjWithDigestWithKey("key", "value")
assert not sdp.exists("entry")
assert not sdp.exists("entry", obj.get_key())
sdp.add(evt_digest, "entry", obj)
assert not sdp.exists("entry", "wrong_key")
assert sdp.exists("entry", obj.get_key())
def test_i_can_test_that_the_object_exists():
sdp = SheerkaDataProvider(".sheerka")
obj = ObjWithDigestWithKey("key", "value")
assert not sdp.exists("entry")
assert not sdp.exists("entry", obj.get_key())
assert not sdp.exists("entry", obj.get_key(), obj.get_digest())
# test for a single item under the key
sdp.add(evt_digest, "entry", obj)
assert not sdp.exists("entry", obj.get_key(), "wrong_digest")
assert sdp.exists("entry", obj.get_key(), obj.get_digest())
# test for a list item under the key
sdp.add(evt_digest, "entry2", ObjWithDigestWithKey("key", "value2"))
assert not sdp.exists("entry2", obj.get_key(), obj.get_digest())
sdp.add(evt_digest, "entry2", ObjWithDigestWithKey("key", "value3"))
assert not sdp.exists("entry2", obj.get_key(), obj.get_digest())
sdp.add(evt_digest, "entry2", obj)
assert sdp.exists("entry2", obj.get_key(), obj.get_digest())
def test_i_can_test_than_the_object_exists_when_using_references():
sdp = SheerkaDataProvider(".sheerka")
sdp.serializer.register(PickleSerializer(lambda o: isinstance(o, ObjWithDigestWithKey)))
obj = ObjWithDigestWithKey("key", "value")
assert not sdp.exists("entry")
assert not sdp.exists("entry", obj.get_key())
assert not sdp.exists("entry", obj.get_key(), obj.get_digest())
# test for a single item under the key
sdp.add(evt_digest, "entry", obj, use_ref=True)
assert not sdp.exists("entry", obj.get_key(), "wrong_digest")
assert sdp.exists("entry", obj.get_key(), obj.get_digest())
# test for a list item under the key
sdp.add(evt_digest, "entry2", ObjWithDigestWithKey("key", "value2"), use_ref=True)
assert not sdp.exists("entry2", obj.get_key(), obj.get_digest())
sdp.add(evt_digest, "entry2", ObjWithDigestWithKey("key", "value3"), use_ref=True)
assert not sdp.exists("entry2", obj.get_key(), obj.get_digest())
sdp.add(evt_digest, "entry2", obj, use_ref=True)
assert sdp.exists("entry2", obj.get_key(), obj.get_digest())
def test_i_can_save_and_load_object_ref_with_history():
sdp = SheerkaDataProvider(".sheerka")
obj = ObjDumpJson("my_key", "value1")