diff options
| author | Yuval Adam <_@yuv.al> | 2024-05-09 12:19:39 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-05-09 12:19:39 +0200 |
| commit | eaab19e310edd682af0231fe06f9a647bfcd5834 (patch) | |
| tree | 76eeea9ad69729d1659a9323552ae4e5e89c9849 /tests | |
| parent | 45739310cf9e0fa6a120651b1fa2c71e32f8aee9 (diff) | |
Dump yaml without sorting keys, check for dataclass on validate
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_stash.py | 32 |
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() |
