Skip to content

Fix Integration tests#63

Merged
srbouffard merged 12 commits into
mainfrom
validate-integration-tests
Jan 29, 2026
Merged

Fix Integration tests#63
srbouffard merged 12 commits into
mainfrom
validate-integration-tests

Conversation

@srbouffard

@srbouffard srbouffard commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

Changes

Fixes broken integration tests.

Changes:

  • Remove outdated lxml wheel file targeting and old python version

  • Update integration test fixtures in conftest.py

  • Update dependencies in poetry.lock and pyproject.toml due to mismatch in versions for lxml and xmlsec

  • Update tox.ini configuration

    Context: This repo is a Python library (not a charm), so it has no build artifacts. The integration test workflow expects charms/rocks and fails with empty build arrays. The CI will start passing once
    operator-workflows branch until Skip integration test build if plan is empty operator-workflows#918 is merged.

- Revert Python version from ~=3.14.2 to >=3.12.2,<3.13
- Python 3.14 doesn't exist yet
- Indico requires Python <3.13,>=3.12.2
- Add newline at end of README
@srbouffard srbouffard requested a review from a team as a code owner January 23, 2026 17:12
@srbouffard srbouffard requested review from florentianayuwono and seb4stien and removed request for a team January 23, 2026 17:12
- Remove obsolete Python 3.10 lxml wheel (project now requires Python 3.12)
- Force lxml and xmlsec to build from source in integration test environment
- This ensures both packages link against the same system libxml2 version
- Fixes: xmlsec.Error: (100, 'lxml & xmlsec libxml2 library version mismatch')

The PIP_NO_BINARY setting only affects integration tests in CI. Production
installations will still use pre-built wheels which are compatible when
installed together.
The previous fix didn't work because poetry doesn't respect PIP_NO_BINARY.
Now explicitly installing lxml and xmlsec from source with pip before
running poetry install, ensuring they build against system libxml2.
Poetry was downgrading lxml from 6.0.2 (built from source) to 5.3.0
(binary wheel from poetry.lock), causing version mismatch with xmlsec.

Now running poetry install first, then force-reinstalling lxml and xmlsec
from source with --force-reinstall --no-deps to prevent poetry from
interfering.
- Add lxml>=5.0 to pyproject.toml to make the dependency explicit
- Update poetry.lock (content-hash only - indico still pins lxml to 5.3.0)
- Build lxml==5.3.0 and xmlsec==1.3.17 from source in integration tests
- This respects indico's version pin while ensuring both link to same libxml2
- Also add .venv/ to .gitignore
@srbouffard srbouffard changed the title DRAFT: Trigger integration tests Fix Integration tests Jan 26, 2026
@srbouffard srbouffard enabled auto-merge (squash) January 27, 2026 14:58
@srbouffard srbouffard disabled auto-merge January 29, 2026 19:08
@srbouffard srbouffard merged commit 21a9821 into main Jan 29, 2026
15 checks passed
@srbouffard srbouffard deleted the validate-integration-tests branch January 29, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants