glaterza opened a new issue, #45245:
URL: https://github.com/apache/superset/issues/45245

   ### Problem
   
   Two tests in `tests/unit_tests/scripts/translations/babel_update_test.py` 
never run on CI. #44395 added them to guard the msgcat step of 
`scripts/translations/babel_update.sh`:
   
   - `test_normalization_sorts_unwraps_and_drops_locations`
   - `test_the_trailing_line_strip_keeps_the_last_entry_intact`
   
   Both skip when `msgcat` is missing. The Python-Unit runner has no gettext, 
so both tests skip on every run. The JUnit report of the Python-Unit run on 
master at `7aadf35e7d` lists both as skipped, with the reason `gettext's msgcat 
is not installed on this runner` 
(https://github.com/apache/superset/actions/runs/38381761342).
   
   On a machine with gettext, the trailing-line test fails:
   
   ```
   babel_update.sh: line 77: python: command not found
   1 failed, 5 passed
   ```
   
   ### Root cause
   
   1. Python-Unit and Python-Nightly-Canary do not install gettext.
   2. The test runs the script with `PATH=<stubs>:<msgcat dir>:/usr/bin:/bin`. 
The script calls `python` on line 77. macOS, Ubuntu 26.04 and Debian 13 have no 
`/usr/bin/python` by default.
   3. The missing `python` also hides a gap in 
`test_a_failing_msgcat_stops_the_script_before_pybabel_update`. With the msgcat 
`|| exit 1` removed, the script still stops before `pybabel update`. It stops 
one line later, at `python`. So the test passes even when the msgcat step stops 
being fatal.
   
   ### Steps to reproduce
   
   1. Install gettext: `brew install gettext` or `apt-get install gettext`.
   2. On master, run `pytest 
tests/unit_tests/scripts/translations/babel_update_test.py`.
   3. The trailing-line test fails with `python: command not found`.
   
   The same result appears in `ubuntu:26.04` and `debian:13` containers with 
only `python3`, `python3-pytest` and `gettext` installed.
   
   ### Proposed fix
   
   A PR follows. It adds `python` and `python3` shims to the test's `PATH` and 
installs gettext in both workflows. It also makes a missing msgcat fail in 
those two jobs, through a `SUPERSET_GETTEXT_STRICT` variable. #43502 uses the 
same pattern with `SUPERSET_TESTCONTAINERS_STRICT`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to