Files
windmill/integration_tests/test/identity_script_test.py
2026-03-15 19:03:09 +00:00

94 lines
2.3 KiB
Python

import os
import time
import unittest
from .wmill_integration_test_utils import WindmillClient
PATH_TEMPLATE = "u/admin/{lang}_identity_script"
SCRIPTS = {
"bash": """
x="$1"
echo ${x}
""",
"bun": """
export async function main(x: number) {
return x;
}
""",
"deno": """
export async function main(x: number) {
return x;
}
""",
"go": """
package inner
func main(x int) (interface{}, error) {
return x, nil
}
""",
"python3": """
def main(x: int):
return x
""",
"php": """<?php
function main(int $x): int {
return $x;
}
""",
}
class TestIdentityScript(unittest.TestCase):
_client: WindmillClient
@classmethod
def setUpClass(cls) -> None:
print("Running {}".format(cls.__name__))
cls._client = WindmillClient()
if not os.environ.get("WMILL_RUNNING_DEV", False):
for lang, script in SCRIPTS.items():
print(f"Creating script for {lang} {script}")
cls._client.create_script(
path=PATH_TEMPLATE.format(lang=lang),
content=script,
language=lang,
)
@classmethod
def tearDownClass(cls) -> None:
if os.environ.get("WMILL_RUNNING_DEV", False):
for lang in SCRIPTS:
cls._client.delete_script(path=PATH_TEMPLATE.format(lang=lang))
def test_bash(self):
path = PATH_TEMPLATE.format(lang="bash")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, "5") # bash only knows strings
def test_bun(self):
path = PATH_TEMPLATE.format(lang="bun")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, 5)
def test_deno(self):
path = PATH_TEMPLATE.format(lang="deno")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, 5)
def test_go(self):
path = PATH_TEMPLATE.format(lang="go")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, 5)
def test_python(self):
path = PATH_TEMPLATE.format(lang="python3")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, 5)
def test_php(self):
path = PATH_TEMPLATE.format(lang="php")
result = self._client.run_sync(path, {"x": 5})
self.assertEqual(result, 5)