summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-05-07 20:55:09 +0200
committerYuval Adam <_@yuv.al>2024-05-07 20:56:12 +0200
commit7dfd130b1c0bd909b604e2273792f840be4decee (patch)
tree103ad199a65c370ac070601808f0dfdf291cc628 /tests
parent3ebf529934ad4932a0dd7deeffa31c4deee2e72d (diff)
Finalize key field functionality
Diffstat (limited to 'tests')
-rw-r--r--tests/test_stash.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/tests/test_stash.py b/tests/test_stash.py
index e7e573b..6a11db9 100644
--- a/tests/test_stash.py
+++ b/tests/test_stash.py
@@ -1,3 +1,5 @@
+import pytest
+
from pathlib import Path
from ymlstash import YmlStash
from dataclasses import dataclass
@@ -20,7 +22,7 @@ def test_stash_path():
def test_stash():
stash = YmlStash(User, "/tmp/")
yuval = User(name="yuval", age=42)
- stash.save("foo", yuval)
+ stash.save(yuval, "foo")
assert stash.list_all_keys() == ["foo"]
obj = stash.load("foo")
assert obj == yuval
@@ -28,15 +30,26 @@ def test_stash():
assert stash.list_all_keys() == []
-@dataclass
-class Dog:
- name: str
- key: ClassVar[str] = "name"
+def test_key_field():
+ @dataclass
+ class Rat:
+ key: ClassVar[str] = "name"
+
+ with pytest.raises(Exception):
+ YmlStash(Rat, ".")
+ @dataclass
+ class Dog:
+ name: str
+ key: ClassVar[str] = "name"
-def test_auto_key():
stash = YmlStash(Dog, "/tmp/")
terra = Dog(name="terra")
- stash.save(None, terra)
+ stash.save(terra)
assert stash.list_all_keys() == ["terra"]
+
+ terra = Dog(name="terra")
+ stash.save(terra, key="dupe") # override key
+ assert stash.list_all_keys() == ["terra", "dupe"]
+
stash.drop()