Skip to content

Commit 1c3c9d0

Browse files
committed
ci: move keyword escaping check to pytest
Signed-off-by: Esteve Fernandez <esteve@apache.org>
1 parent b56ae0f commit 1c3c9d0

4 files changed

Lines changed: 19 additions & 16 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ jobs:
2828

2929
- name: Check Python syntax
3030
run: |
31-
python -m compileall -q rosidl_generator_rs/rosidl_generator_rs
31+
python -m compileall -q rosidl_generator_rs/rosidl_generator_rs rosidl_generator_rs/test
3232
python -m py_compile rosidl_generator_rs/bin/rosidl_generator_rs
3333
3434
- name: Lint Python sources
35-
run: python -m ruff check rosidl_generator_rs/rosidl_generator_rs rosidl_generator_rs/bin/rosidl_generator_rs
35+
run: python -m ruff check rosidl_generator_rs/rosidl_generator_rs rosidl_generator_rs/bin/rosidl_generator_rs rosidl_generator_rs/test
3636

3737
ros:
3838
name: ROS build and test (${{ matrix.ros_distro }})
@@ -83,20 +83,6 @@ jobs:
8383
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
8484
colcon build --packages-up-to rosidl_generator_rs_tests --event-handlers console_direct+
8585
86-
- name: Check Rust keyword escaping
87-
shell: bash
88-
run: |
89-
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
90-
source install/setup.bash
91-
python3 - <<'PY'
92-
from rosidl_generator_rs import get_rs_name
93-
94-
for keyword in ('try', 'type', 'const', 'async', 'match'):
95-
assert get_rs_name(keyword) == f'{keyword}_'
96-
97-
assert get_rs_name('plain_field') == 'plain_field'
98-
PY
99-
10086
- name: Test package
10187
shell: bash
10288
run: |

rosidl_generator_rs/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,13 @@ ament_index_register_resource("rosidl_generator_packages")
1717
ament_python_install_package(${PROJECT_NAME})
1818

1919
if(BUILD_TESTING)
20+
find_package(ament_cmake_pytest REQUIRED)
2021
find_package(ament_lint_auto REQUIRED)
22+
23+
ament_add_pytest_test(test_keyword_escaping test/test_keyword_escaping.py
24+
APPEND_ENV PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}
25+
)
26+
2127
# The Python sources are checked by Ruff in CI. Copyright and docstring
2228
# linters are noisy for template files in this generator package.
2329
set(ament_cmake_copyright_FOUND TRUE)

rosidl_generator_rs/package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<exec_depend>rosidl_parser</exec_depend>
2929

3030
<test_depend>ament_cmake_gtest</test_depend>
31+
<test_depend>ament_cmake_pytest</test_depend>
3132
<test_depend>ament_lint_auto</test_depend>
3233
<test_depend>ament_lint_common</test_depend>
3334
<test_depend condition="humble >= $ROS_DISTRO">rosidl_cmake</test_depend>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from rosidl_generator_rs import get_rs_name
2+
3+
4+
def test_rust_keywords_are_escaped():
5+
for keyword in ("try", "type", "const", "async", "match"):
6+
assert get_rs_name(keyword) == f"{keyword}_"
7+
8+
9+
def test_non_keyword_names_are_unchanged():
10+
assert get_rs_name("plain_field") == "plain_field"

0 commit comments

Comments
 (0)