Skip to content

The numpy: 1 legs of the CI matrix never run test_create_table_numpy (it needs pandas, only numpy is installed) #872

Description

@glaziermag

.github/workflows/test.yml runs every job twice, numpy: 0 and numpy: 1, and the numpy: 1 legs pip install numpy (lines 14 and 29-31). The only test that inserts numpy-typed values, tests/test_create.py::test_create_table_numpy, is marked @pytest.mark.skipif(pd is None, ...) and builds its rows with pd.DataFrame (lines 1184-1188), so it needs pandas, which is in no dependency group. Every numpy: 1 job therefore skips it, right after installing numpy.

From the latest run on main (85b1be1, run 33591986086):

  • test (3.12, 1, ubuntu-latest) (job 100127687768): Successfully installed numpy-2.5.2 … tests/test_create.py::test_create_table_numpy SKIPPED (pandas and nu...) … 1503 passed, 1 skipped
  • test (3.12, 0, ubuntu-latest) (job 100127687626): 1503 passed, 1 skipped

All 24 numpy: 1 jobs in that run report exactly the same pass/skip counts as their numpy: 0 twins.

Locally (Python 3.13, numpy 2.5.3, pandas 3.0.6):

git clone https://github.com/simonw/sqlite-utils && cd sqlite-utils
python -m venv venv && venv/bin/pip install -e . --group dev
venv/bin/pip install numpy
venv/bin/pytest tests/test_create.py -k numpy -rs
# SKIPPED [1] tests/test_create.py:1184: pandas and numpy are not installed
venv/bin/pip install pandas
venv/bin/pytest tests/test_create.py -k numpy -rs
# 1 passed

History: the test was added together with the numpy type mapping in #12 (e615d22) and ran on Travis, whose .travis.yml had # Only run the numpy/pandas tests on Python 3.7: … pip install pandas || true. 01c7784 (the GitHub Actions migration, #143) dropped that line, and the same-day cbc22ef ("Add numpy to the matrix, refs #144") re-added the leg as pip install numpy. So the leg has skipped the test since 2020-08-28, including when #632 (the broken-numpy int8 crash) was fixed.

Possible fixes, whichever you prefer: pip install numpy pandas in the "Optionally install numpy" step (passes locally as above), add pandas to a dependency group, or split the dtype part of the test so it runs with numpy alone. Note that publish.yml's release test matrix has no numpy leg at all.

Found and checked with Claude Code assistance; the log lines and commands above are from real runs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions