Files
flucto-heisskleber/tests/test_packer.py
2023-11-06 22:52:48 +01:00

36 lines
1.0 KiB
Python

import json
import pickle
from typing import Any
import pytest
from heisskleber.core.packer import get_packer, get_unpacker, serialpacker
def test_get_packer() -> None:
assert get_packer("json") == json.dumps
assert get_packer("pickle") == pickle.dumps
assert get_packer("default") == json.dumps
assert get_packer("foobar") == json.dumps
assert get_packer("serial") == serialpacker
def test_get_unpacker() -> None:
assert get_unpacker("json") == json.loads
assert get_unpacker("pickle") == pickle.loads
assert get_unpacker("default") == json.loads
assert get_unpacker("foobar") == json.loads
@pytest.mark.parametrize(
"message,expected",
[
({"hi": 1, "da": 2, "nei": 3}, "1,2,3"),
({"er": 1, "ma": "ga", "gerd": 3, "jo": 4}, "1,ga,3,4"),
({"": 1, "ho": 0.0, "lee": 0.1, "shit": 1_000}, "1,0.0,0.1,1000"),
({"be": 1e6, "li": 1_000}, "1000000.0,1000"),
],
)
def test_serial_packer_functionality(message: dict[str, Any], expected: str) -> None:
assert serialpacker(message) == expected