def test_dict_wf_with_constants():

    @task
    def t1(a: int) -> typing.NamedTuple('OutputsBC', t1_int_output=int, c=str):
        return ((a + 2), 'world')

    @task
    def t2(a: typing.Dict[(str, str)]) -> str:
        return ' '.join([v for (k, v) in a.items()])

    @workflow
    def my_wf(a: int, b: str) -> (int, str):
        (x, y) = t1(a=a)
        d = t2(a={'key1': b, 'key2': y})
        return (x, d)
    x = my_wf(a=5, b='hello')
    assert (x == (7, 'hello world'))
def test_dict_wf_with_constants():

    @task
    def t1(a: int) -> typing.NamedTuple('OutputsBC', t1_int_output=int, c=str):
        return ((a + 2), 'world')

    @task
    def t2(a: typing.Dict[(str, str)]) -> str:
        return ' '.join([v for (k, v) in a.items()])

    @workflow
    def my_wf(a: int, b: str) -> (int, str):
        (x, y) = t1(a=a)
        d = t2(a={'key1': b, 'key2': y})
        return (x, d)
    x = my_wf(a=5, b='hello')
    assert (x == (7, 'hello world'))