Skip to content

Commit aacbc7b

Browse files
committed
test: run hermetic user examples in CI
Signed-off-by: Yifan Chen <emecii23@gmail.com> Generated-by: OpenAI Codex
1 parent b6c6f5b commit aacbc7b

2 files changed

Lines changed: 48 additions & 1 deletion

File tree

.github/workflows/test.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,12 @@ jobs:
119119
# free-threaded build and re-pick the system 3.12 (see install step).
120120
uv run --python "$PWD/.venv/bin/python" --no-project pytest -v --import-mode=importlib
121121
122-
# FFI + TPC-H examples only need to run once; gate to abi3 entries.
122+
# User, FFI, and TPC-H examples only need to run once; gate to abi3 entries.
123+
- name: Run hermetic user examples
124+
if: matrix.wheel-tag == 'abi3'
125+
run: |
126+
uv run --python "$PWD/.venv/bin/python" --no-project pytest examples/_tests.py
127+
123128
- name: FFI unit tests
124129
if: matrix.wheel-tag == 'abi3'
125130
run: |

examples/_tests.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
"""Run the top-level examples that require no external resources."""
19+
20+
import subprocess
21+
import sys
22+
from pathlib import Path
23+
24+
import pytest
25+
26+
EXAMPLES = (
27+
"array-operations.py",
28+
"create-context.py",
29+
"query-pyarrow-data.py",
30+
"python-udf.py",
31+
)
32+
33+
34+
@pytest.mark.parametrize("example", EXAMPLES)
35+
def test_example_runs(example: str) -> None:
36+
"""Run one hermetic user example with the installed DataFusion package."""
37+
examples_dir = Path(__file__).parent
38+
subprocess.run( # noqa: S603 -- `example` is selected from the module allowlist.
39+
[sys.executable, examples_dir / example],
40+
check=True,
41+
cwd=examples_dir.parent,
42+
)

0 commit comments

Comments
 (0)