diff --git a/meshtastic/tests/test_util.py b/meshtastic/tests/test_util.py index 1ea80da..59f2d7e 100644 --- a/meshtastic/tests/test_util.py +++ b/meshtastic/tests/test_util.py @@ -594,3 +594,54 @@ def test_roundtrip_snake_to_camel_camel_to_snake(a_string): value0 = snake_to_camel(a_string=a_string) value1 = camel_to_snake(a_string=value0) assert a_string == value1, (a_string, value1) + +@given(st.text()) +def test_fuzz_camel_to_snake(a_string): + result = camel_to_snake(a_string) + assert "_" in result or result == a_string.lower() + +@given(st.text()) +def test_fuzz_snake_to_camel(a_string): + result = snake_to_camel(a_string) + assert "_" not in result or result == a_string.split("_")[0] + "".join(ele.title() for ele in a_string.split("_")[1:]) + +@given(st.text()) +def test_fuzz_stripnl(s): + result = stripnl(s) + assert "\n" not in result + +@given(st.binary()) +def test_fuzz_pskToString(psk): + result = pskToString(psk) + if len(psk) == 0: + assert result == "unencrypted" + elif len(psk) == 1: + b = psk[0] + if b == 0: + assert result == "unencrypted" + elif b == 1: + assert result == "default" + else: + assert result == f"simple{b - 1}" + else: + assert result == "secret" + +@given(st.text()) +def test_fuzz_fromStr(valstr): + result = fromStr(valstr) + if valstr.startswith("0x"): + assert isinstance(result, bytes) + elif valstr.startswith("base64:"): + assert isinstance(result, bytes) + elif len(valstr) == 0: + assert result == b'' + elif valstr.lower() in {"t", "true", "yes"}: + assert result is True + elif valstr.lower() in {"f", "false", "no"}: + assert result is False + else: + try: + int(valstr) + assert isinstance(result, int) + except ValueError: + assert isinstance(result, str)