From 1c2ba91853b332ec7c2ab5c03d48205ca1abe875 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Wed, 20 Sep 2023 23:07:10 -0700 Subject: [PATCH] whitespace test working again --- src/ytdl_sub/script/parser.py | 2 +- src/ytdl_sub/script/types/function.py | 4 +--- tests/unit/script/test_parser.py | 12 ++++++------ 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/ytdl_sub/script/parser.py b/src/ytdl_sub/script/parser.py index 2bd30b2e..8552a485 100644 --- a/src/ytdl_sub/script/parser.py +++ b/src/ytdl_sub/script/parser.py @@ -49,7 +49,7 @@ class _Parser: if ch.isspace() and not var_name: self._pos += 1 continue - if ch in ["}", ","] or ch.isspace(): + if ch in ["}", ",", ")"] or ch.isspace(): break is_lower = ch.isascii() and ch.islower() diff --git a/src/ytdl_sub/script/types/function.py b/src/ytdl_sub/script/types/function.py index 61522a81..04a15b9b 100644 --- a/src/ytdl_sub/script/types/function.py +++ b/src/ytdl_sub/script/types/function.py @@ -188,9 +188,7 @@ class Function(VariableDependency): @property def output_type(self) -> Type[Resolvable]: - output_type = self.arg_spec.annotations["return"] - # TODO: Handle generics here - return output_type + return self.arg_spec.annotations["return"] @property def variables(self) -> Set[Variable]: diff --git a/tests/unit/script/test_parser.py b/tests/unit/script/test_parser.py index 5d9bd7da..c083b33c 100644 --- a/tests/unit/script/test_parser.py +++ b/tests/unit/script/test_parser.py @@ -123,8 +123,8 @@ class TestParser: def test_single_function_multiple_args(self, whitespace: str): s = whitespace parsed = parse( - f"hello{s}{{{s}%concat({s}'string'{s},{s}1{s},{s}2.4{s}," - f"{s}TRUE{s},{s}variable_name{s},{s}%capitalize({s}'hi'{s}){s}){s}}}" + f"hello{s}{{{s}%concat({s}'string'{s},{s}%string(1){s},{s}%string(2.4){s}," + f"{s}%string(TRUE){s},{s}%string(variable_name){s},{s}%capitalize({s}'hi'{s}){s}){s}}}" ) assert parsed == SyntaxTree( [ @@ -133,10 +133,10 @@ class TestParser: name="concat", args=[ String(value="string"), - Integer(value=1), - Float(value=2.4), - Boolean(value=True), - Variable(name="variable_name"), + Function(name="string", args=[Integer(value=1)]), + Function(name="string", args=[Float(value=2.4)]), + Function(name="string", args=[Boolean(value=True)]), + Function(name="string", args=[Variable(name="variable_name")]), Function(name="capitalize", args=[String(value="hi")]), ], ),