ytdl-sub/tests/unit/script/functions/test_json_functions.py
Jesse Bannon e92b1cd12a
[BACKEND][HUGE] Function Support in variable syntax (#838)
A complete gutting of the internals of ytdl-sub to support functions in our variable syntax, in addition to being able to access a yt-dlp entry's .info.json fields using functions. Functionally, ytdl-sub should still look and behave the same from a user-perspective.

With so many lines of code changed (+8927, -2708), no doubt there will be new issues. Please make a GH issue or reach out on Discord if your config/subscriptions break in any way/shape/form.

Details on how to use function support will come soon in the form of proper documentation in our readthedocs.
2023-12-18 16:08:15 -08:00

31 lines
871 B
Python

import json
import pytest
from unit.script.conftest import single_variable_output
class TestJsonFunctions:
@pytest.mark.parametrize("str_token", ["'''", '"""'])
def test_from_json(self, str_token: str):
json_dict = {
"string": "value",
"quotes": "has '' and \"\"",
"int": 1,
"bool": True,
"list": [1, 2, 3],
"dict": {"a": 1, "b": 2},
"float": 3.14,
"nested_dict": {
"string": "value",
"int": 1,
"bool": True,
"list": [1, 2, 3],
"dict": {"a": 1, "b": 2},
"float": 3.14,
},
}
output = single_variable_output(
f"{{ %from_json({str_token}{json.dumps(json_dict)}{str_token}) }}"
)
assert output == json_dict