From d35c8e9965e34e13f35ea1873eb2951ae114d76d Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Thu, 30 Nov 2023 07:44:33 -0800 Subject: [PATCH] condtional functions --- .../functions/test_conditional_functions.py | 35 +++++++++++++++++++ tests/unit/script/types/test_function.py | 35 ------------------- 2 files changed, 35 insertions(+), 35 deletions(-) create mode 100644 tests/unit/script/functions/test_conditional_functions.py diff --git a/tests/unit/script/functions/test_conditional_functions.py b/tests/unit/script/functions/test_conditional_functions.py new file mode 100644 index 00000000..259c0a33 --- /dev/null +++ b/tests/unit/script/functions/test_conditional_functions.py @@ -0,0 +1,35 @@ +import pytest + +from ytdl_sub.script.script import Script + + +class TestConditionalFunction: + @pytest.mark.parametrize( + "function_str, expected_output", + [ + ("{%if(True, True, False)}", True), + ("{%if(False, True, False)}", False), + ], + ) + def test_if_function(self, function_str: str, expected_output: bool): + output = Script({"output": function_str}).resolve(update=True).get("output").native + assert output == expected_output + + def test_nested_if_function(self): + function_str = """{ + %if( + True, + %if( + True, + %if( + True, + "winner", + True + ), + True + ), + True + ) + }""" + output = Script({"output": function_str}).resolve(update=True).get("output").native + assert output == "winner" diff --git a/tests/unit/script/types/test_function.py b/tests/unit/script/types/test_function.py index 07733041..3ee12b17 100644 --- a/tests/unit/script/types/test_function.py +++ b/tests/unit/script/types/test_function.py @@ -4,13 +4,10 @@ import pytest from ytdl_sub.script.parser import FUNCTION_INVALID_CHAR from ytdl_sub.script.script import Script -from ytdl_sub.script.types.resolvable import Boolean -from ytdl_sub.script.types.resolvable import String from ytdl_sub.script.utils.exceptions import FunctionDoesNotExist from ytdl_sub.script.utils.exceptions import FunctionRuntimeException from ytdl_sub.script.utils.exceptions import IncompatibleFunctionArguments from ytdl_sub.script.utils.exceptions import InvalidSyntaxException -from ytdl_sub.script.utils.exceptions import UserThrownRuntimeError def _incompatible_arguments_match(expected: str, recieved: str) -> str: @@ -18,38 +15,6 @@ def _incompatible_arguments_match(expected: str, recieved: str) -> str: class TestFunction: - @pytest.mark.parametrize( - "function_str, expected_output", - [ - ("{%if(True, True, False)}", True), - ("{%if(False, True, False)}", False), - ], - ) - def test_if_function(self, function_str: str, expected_output: bool): - assert Script({"func": function_str}).resolve() == { - "func": Boolean(expected_output), - } - - def test_nested_if_function(self): - function_str = """{ - %if( - True, - %if( - True, - %if( - True, - "winner", - True - ), - True - ), - True - ) - }""" - assert Script({"func": function_str}).resolve() == { - "func": String("winner"), - } - def test_nested_if_function_incompatible(self): function_str = """{ %map_get(