Skip to content

Commit 884db18

Browse files
committed
add tests for Dictcomprehension
1 parent 3abb31c commit 884db18

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

src/astx/tools/transpilers/python.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,4 +681,6 @@ def visit(self, node:astx.DictComprehension) -> str:
681681
return f"{
682682
{{self.visit(node.key)}: {self.visit(node.value)}
683683
for {self.visit(node.iterable)} in {self.visit(node.iterator)}}
684-
}"
684+
}"
685+
686+

tests/test_flows.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,3 +323,17 @@ def test_goto_stmt() -> None:
323323
assert goto_stmt.get_struct()
324324
assert goto_stmt.get_struct(simplified=True)
325325
visualize(goto_stmt.get_struct())
326+
327+
def test_dict_comprehension() -> None:
328+
"""Test `DictComprehension` class."""
329+
330+
dict_comp = astx.DictComprehension(
331+
key = astx.Identifier('x'),
332+
value = astx.Identifier('x*x'),
333+
iterable = astx.Identifier('x'),
334+
iterator = astx.Identifier('my_list')
335+
)
336+
assert str(dict_comp) == '{x: x*x for x in my_list}'
337+
assert dict_comp.get_struct()
338+
assert dict_comp.get_struct(simplified=True)
339+
visualize(dict_comp.get_struct())

tests/tools/transpilers/test_python.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,3 +1397,18 @@ def test_transpiler_literal_dict() -> None:
13971397
1: 10,
13981398
2: 20,
13991399
}, f"Expected '{expected_code}', but got '{generated_code}'"
1400+
1401+
def test_dict_comprehension() -> None:
1402+
"""Test astx.DictComprehension"""
1403+
1404+
dict_comp = astx.DictComprehension(
1405+
key = astx.Identifier('x'),
1406+
value = astx.Identifier('x*x'),
1407+
iterable = astx.Identifier('x'),
1408+
iterator = astx.Identifier('my_list')
1409+
)
1410+
1411+
generated_code = transpiler.visit(dict_comp)
1412+
expected_code = '{x: x*x for x in my_list}'
1413+
1414+
assert generated_code == expected_code, f"Expected code: {expected_code} ; Generated code: {generated_code}"

0 commit comments

Comments
 (0)