summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-05-09 12:19:39 +0200
committerYuval Adam <_@yuv.al>2024-05-09 12:19:39 +0200
commiteaab19e310edd682af0231fe06f9a647bfcd5834 (patch)
tree76eeea9ad69729d1659a9323552ae4e5e89c9849 /tests
parent45739310cf9e0fa6a120651b1fa2c71e32f8aee9 (diff)
Dump yaml without sorting keys, check for dataclass on validate
Diffstat (limited to 'tests')
-rw-r--r--tests/test_stash.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/tests/test_stash.py b/tests/test_stash.py
index 0e84eae..d6f8ab9 100644
--- a/tests/test_stash.py
+++ b/tests/test_stash.py
@@ -5,7 +5,7 @@ from ymlstash import YmlStash
from dataclasses import dataclass
from typing import ClassVar
-TEST_STASH_PATH = "/tmp"
+TEST_STASH_PATH = Path("/tmp")
@dataclass
@@ -21,9 +21,12 @@ def test_stash_path():
assert stash.path == Path(".")
-def test_invalid_path():
+def test_invalid():
with pytest.raises(Exception):
YmlStash(User, "/tmp/does/not/exist")
+ with pytest.raises(Exception) as e:
+ YmlStash(object, ".")
+ assert "is not a dataclass" in e.value.args[0]
def test_stash():
@@ -55,7 +58,7 @@ def test_stash():
def test_key_field():
@dataclass
class Rat:
- key: ClassVar[str] = "name"
+ key: ClassVar[str] = "foo"
with pytest.raises(Exception):
YmlStash(Rat, ".")
@@ -75,3 +78,26 @@ def test_key_field():
assert stash.list_keys() == ["terra", "dupe"]
stash.drop()
+
+
+def test_dump_order():
+ @dataclass
+ class Order:
+ o: int
+ r: int
+ d: int
+ e: int
+ a: int
+ z: int
+ key: ClassVar[str] = "o"
+
+ stash = YmlStash(Order, TEST_STASH_PATH)
+ order = Order(1, 2, 3, 4, 5, 6)
+ stash.save(order)
+
+ with open(TEST_STASH_PATH / "1.yml", "r") as f:
+ lines = f.readlines()
+ keys = "".join([line[0] for line in lines])
+ assert keys == "ordeaz"
+
+ stash.drop()