Files
windmill/integration_tests/test/increment_flow_test.py
Ruben Fiszel 19246bcf3e chore: eetest (#2937)
* chore: Windmill integration tests

* Revert github workflow temp changes

* fix ee

---------

Co-authored-by: gbouv <guillaume@windmill.dev>
2023-12-30 03:29:00 +01:00

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