Testing fxcss itself
The toolkit's own CI runs unit tests on Python 3.9, 3.12 and 3.14. Profile installation, upgrade, rollback, removal and failure recovery are checked on macOS, Windows and Linux, including edited files and paths with spaces and non-ASCII characters. Real Firefox checks cover Stable on all three platforms and ESR on Linux, repeated capture consistency, deliberate CSS changes, nested imports, content stylesheets and stacked optional stylesheets.
A separate compatibility workflow checks Stable, ESR, Beta and Nightly on Linux every Monday and Thursday, or on demand. Failed audits, incomplete captures and rendering differences fail the run; reports and screenshots are retained as workflow artifacts. These checks help detect browser changes between releases. To test a development branch before merging, manually run CI on that branch and enable compatibility to include all four channels. Normal PR CI runs Stable and ESR; the additional channels are optional for manual runs.
Package publishing is gated on CI and checks of the exact wheel and source
archive being published. Clean environments outside the checkout test the
base install, optional image dependencies, generated workflows and profile
compatibility with the latest released fxcss. Package checks run on all three
operating systems with Python 3.9 and 3.14; the release tag must also match the
built package version. These are fxcss's own checks; init generates the theme
repository workflows described above.
Run the checks locally with:
python3 -m unittest discover -s tests -v
python3 -m tests.smoke_themes # requires Firefox and a display
python3 -m tests.smoke_variants # requires Firefox and a display
python3 -m pip install build
python3 -m build
python3 scripts/package_smoke.py --dist dist # downloads the released package and image dependencies