* chore: Windmill integration tests * Revert github workflow temp changes * fix ee --------- Co-authored-by: gbouv <guillaume@windmill.dev>
157 lines
4.4 KiB
Python
157 lines
4.4 KiB
Python
import json
|
|
import os
|
|
import time
|
|
import unittest
|
|
|
|
from .wmill_integration_test_utils import WindmillClient
|
|
|
|
PATH = "u/admin/increment_flow"
|
|
FLOW_VALUE = """
|
|
{
|
|
"summary": "",
|
|
"schema":
|
|
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"properties":
|
|
{
|
|
"x":
|
|
{
|
|
"type": "integer",
|
|
"description": "",
|
|
"format": ""
|
|
}
|
|
},
|
|
"required":
|
|
[],
|
|
"type": "object",
|
|
"order":
|
|
[
|
|
"x"
|
|
]
|
|
},
|
|
"value":
|
|
{
|
|
"modules":
|
|
[
|
|
{
|
|
"id": "a",
|
|
"value":
|
|
{
|
|
"tag": "",
|
|
"lock": "{\\n \\"version\\": \\"3\\",\\n \\"remote\\": {}\\n}\\n",
|
|
"type": "rawscript",
|
|
"content": "export async function main(x: number) {\\n return x + 1\\n}\\n",
|
|
"language": "deno",
|
|
"input_transforms":
|
|
{
|
|
"x":
|
|
{
|
|
"expr": "flow_input.x + 5",
|
|
"type": "javascript"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "b",
|
|
"value":
|
|
{
|
|
"lock": "{\\n \\"dependencies\\": {}\\n}\\n//bun.lockb\\n<empty>",
|
|
"type": "rawscript",
|
|
"content": "export async function main(x: number) {\\n return x + 1\\n}\\n",
|
|
"language": "bun",
|
|
"input_transforms":
|
|
{
|
|
"x":
|
|
{
|
|
"expr": "results.a",
|
|
"type": "javascript"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "c",
|
|
"value":
|
|
{
|
|
"lock": "",
|
|
"type": "rawscript",
|
|
"content": "def main(x: int):\\n return x + 1",
|
|
"language": "python3",
|
|
"input_transforms":
|
|
{
|
|
"x":
|
|
{
|
|
"expr": "results.b",
|
|
"type": "javascript"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "d",
|
|
"value":
|
|
{
|
|
"lock": "module mymod\\n\\ngo 1.21.5\\n//go.sum\\n",
|
|
"type": "rawscript",
|
|
"content": "package inner\\nfunc main(x int) (interface{}, error) {\\n\\treturn x + 1, nil\\n}\\n",
|
|
"language": "go",
|
|
"input_transforms":
|
|
{
|
|
"x":
|
|
{
|
|
"expr": "results.c",
|
|
"type": "javascript"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "e",
|
|
"value":
|
|
{
|
|
"lock": "",
|
|
"type": "rawscript",
|
|
"content": "x=\\"$1\\"\\necho $((x+1))",
|
|
"language": "bash",
|
|
"input_transforms":
|
|
{
|
|
"x":
|
|
{
|
|
"expr": "`${results.d}`",
|
|
"type": "javascript"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"extra_perms":
|
|
{},
|
|
"ws_error_handler_muted": false
|
|
}
|
|
"""
|
|
|
|
|
|
class TestIncrementFlow(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):
|
|
cls._client.create_flow(
|
|
path=PATH,
|
|
flow_value_json=FLOW_VALUE,
|
|
)
|
|
|
|
@classmethod
|
|
def tearDownClass(cls) -> None:
|
|
if os.environ.get("WMILL_RUNNING_DEV", False):
|
|
cls._client.delete_flow(path=PATH)
|
|
|
|
def test_flow(self):
|
|
result = self._client.run_sync(PATH, {"x": 5}, type="f")
|
|
self.assertEqual(result, "15") # bash only knows strings
|