string functions tested
This commit is contained in:
parent
8fadf2f084
commit
fdcf86ef52
2 changed files with 80 additions and 2 deletions
|
|
@ -55,8 +55,8 @@ class StringFunctions:
|
|||
return String(string.value.replace(old.value, new.value))
|
||||
|
||||
@staticmethod
|
||||
def concat(*args: String) -> String:
|
||||
def concat(*values: String) -> String:
|
||||
"""
|
||||
Concatenate multiple Strings into a single String.
|
||||
"""
|
||||
return String("".join(*args))
|
||||
return String("".join(list([val.value for val in values])))
|
||||
|
|
|
|||
78
tests/unit/script/functions/test_string_functions.py
Normal file
78
tests/unit/script/functions/test_string_functions.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
import pytest
|
||||
from unit.script.conftest import single_variable_output
|
||||
|
||||
from ytdl_sub.script.script import Script
|
||||
|
||||
|
||||
class TestNumericFunctions:
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
("'lower'", "LOWER"),
|
||||
("'UPPER'", "UPPER"),
|
||||
],
|
||||
)
|
||||
def test_upper(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%upper({values})}}")
|
||||
assert output == expected_output
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
("'lower'", "lower"),
|
||||
("'UPPER'", "upper"),
|
||||
],
|
||||
)
|
||||
def test_lower(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%lower({values})}}")
|
||||
assert output == expected_output
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
("'lower First word'", "Lower first word"),
|
||||
("'UPPER First word'", "Upper first word"),
|
||||
],
|
||||
)
|
||||
def test_capitalize(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%capitalize({values})}}")
|
||||
assert output == expected_output
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
("'lower First word'", "Lower First Word"),
|
||||
("'UPPER First word'", "Upper First Word"),
|
||||
],
|
||||
)
|
||||
def test_titlecase(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%titlecase({values})}}")
|
||||
assert output == expected_output
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
(
|
||||
"'lower First word second word', 'word', 'string'",
|
||||
"lower First string second string",
|
||||
),
|
||||
(
|
||||
"'lower First word second word', 'word', 'string', 1",
|
||||
"lower First string second word",
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_replace(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%replace({values})}}")
|
||||
assert output == expected_output
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"values, expected_output",
|
||||
[
|
||||
("'lower First word'", "lower First word"),
|
||||
("'lower First word', ' second', ' string'", "lower First word second string"),
|
||||
],
|
||||
)
|
||||
def test_concat(self, values: str, expected_output: str):
|
||||
output = single_variable_output(f"{{%concat({values})}}")
|
||||
assert output == expected_output
|
||||
Loading…
Reference in a new issue