Skip to content

Conversation

@phracek
Copy link
Member

@phracek phracek commented Nov 11, 2025

This pull request migrates bash test suite
to container-ci-suite stored here: https://github.org/sclorg/container-ci-suite

Introduce PyTest suite migrated from test/run bash suite.
Migration matrix is:

build_s2i_app is fixture that takes Path test-app from conftest.py
file.

test_container_application.py tests all test-app directories.

test_container_basics.py tests only basics w/o application.
It also tests test_dockerfile and test_minimal_dockerfile

Signed-off-by: Petr "Stone" Hracek phracek@redhat.com

phracek added a commit to phracek/s2i-python-container that referenced this pull request Nov 11, 2025
This blocks: sclorg#768

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
phracek added a commit that referenced this pull request Nov 11, 2025
This blocks: #768

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
Also VARS.* variables are used during the migration.

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
Migration matrix is:

`build_s2i_app` is fixture that takes `Path` test-app from `conftest.py`
file.

test_container_application.py tests all test-app directories.

test_container_basics.py tests only basics w/o application.
It also tests test_dockerfile and test_minimal_dockerfile

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
@phracek
Copy link
Member Author

phracek commented Nov 11, 2025

Rebased against master. Let's run first round of tests.
[test][test-pytest][test-openshift-pytest]

@github-actions
Copy link

github-actions bot commented Nov 11, 2025

Testing Farm results

namecomposearchstatusstarted (UTC)timelogs
RHEL8 - PyTest - OpenShift 4 - 3.12RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:28:0027min 36stest pipeline
RHEL8 - PyTest - OpenShift 4 - 3.9RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:28:3324min 45stest pipeline
RHEL8 - 3.9-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:36:0825min 52stest pipeline
RHEL8 - PyTest - 3.11RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:05:2337min 57stest pipeline
RHEL8 - PyTest - OpenShift 4 - 3.12-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:49:1424min 53stest pipeline
RHEL8 - PyTest - 3.9RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:05:2537min 59stest pipeline
RHEL8 - PyTest - 3.12-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:05:2530min 25stest pipeline
RHEL10 - PyTest - OpenShift 4 - 3.12-minimalRHEL-10-Nightlyx86_64✅ passed13.11.2025 10:44:0822min 53stest pipeline
RHEL8 - PyTest - OpenShift 4 - 3.11RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:56:2225min 25stest pipeline
RHEL10 - PyTest - 3.12-minimalRHEL-10-Nightlyx86_64✅ passed13.11.2025 10:05:2624min 13stest pipeline
RHEL8 - PyTest - 3.9-minimalRHEL-8.10.0-Nightlyx86_64✅ passed12.11.2025 12:51:5727min 12stest pipeline
RHEL9 - PyTest - OpenShift 4 - 3.12RHEL-9.6.0-Nightlyx86_64❌ error13.11.2025 12:44:3516min 21stest pipeline
RHEL8 - PyTest - 3.11-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:39:4827min 29stest pipeline
RHEL9 - 3.9RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:25:4729min 32stest pipeline
RHEL9 - 3.12-minimalRHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:34:2029min 37stest pipeline
RHEL9 - PyTest - 3.12-minimalRHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:05:2433min 41stest pipeline
RHEL9 - PyTest - OpenShift 4 - 3.12-minimalRHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:06:0032min 31stest pipeline
RHEL9 - PyTest - OpenShift 4 - 3.11RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:56:3831min 9stest pipeline
RHEL8 - 3.11RHEL-8.10.0-Nightlyx86_64❌ error13.11.2025 10:31:5726min 12stest pipeline
RHEL9 - PyTest - 3.9RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:37:5338min 32stest pipeline
RHEL9 - PyTest - OpenShift 4 - 3.9RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:05:5533min 47stest pipeline
RHEL9 - PyTest - 3.11RHEL-9.6.0-Nightlyx86_64❌ error13.11.2025 10:36:0840min test pipeline
RHEL8 - 3.12RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 11:00:4727min 29stest pipeline
RHEL8 - 3.12-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:05:4727min 40stest pipeline
RHEL10 - 3.12-minimalRHEL-10-Nightlyx86_64✅ passed13.11.2025 10:44:1621min 50stest pipeline
CentOS Stream 9 - PyTest - 3.9CentOS-Stream-9x86_64✅ passed13.11.2025 10:05:2530min 11stest pipeline
CentOS Stream 10 - PyTest - 3.12-minimalCentOS-Stream-10x86_64❌ error13.11.2025 10:05:3317min 20stest pipeline
CentOS Stream 9 - PyTest - 3.11-minimalCentOS-Stream-9x86_64✅ passed13.11.2025 10:05:3520min 45stest pipeline
CentOS Stream 9 - PyTest - 3.12-minimalCentOS-Stream-9x86_64✅ passed13.11.2025 10:05:2418min 60stest pipeline
CentOS Stream 10 - 3.12CentOS-Stream-10x86_64✅ passed13.11.2025 10:05:4921min 1stest pipeline
RHEL9 - PyTest - 3.12RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:38:0040min 17stest pipeline
RHEL8 - PyTest - 3.12RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:40:2634min 2stest pipeline
RHEL8 - 3.11-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:37:5825min 37stest pipeline
RHEL8 - 3.9RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:55:0027min 41stest pipeline
Fedora - PyTest - 3.13Fedora-latestx86_64❌ error13.11.2025 10:05:3429min 52stest pipeline
CentOS Stream 9 - PyTest - 3.9-minimalCentOS-Stream-9x86_64✅ passed13.11.2025 10:05:2420min 2stest pipeline
CentOS Stream 10 - PyTest - 3.12CentOS-Stream-10x86_64✅ passed13.11.2025 10:05:2629min 46stest pipeline
CentOS Stream 9 - 3.12-minimalCentOS-Stream-9x86_64✅ passed12.11.2025 12:08:293h 6min 22stest pipeline
RHEL9 - 3.11RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:23:5330min 37stest pipeline
RHEL9 - 3.12RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 11:02:3134min 7stest pipeline
CentOS Stream 9 - PyTest - 3.11CentOS-Stream-9x86_64✅ passed13.11.2025 10:05:2530min 29stest pipeline
CentOS Stream 9 - PyTest - 3.12CentOS-Stream-9x86_64✅ passed13.11.2025 10:05:3530min 53stest pipeline
CentOS Stream 9 - 3.9-minimalCentOS-Stream-9x86_64✅ passed13.11.2025 10:28:0620min 13stest pipeline
CentOS Stream 9 - 3.12CentOS-Stream-9x86_64✅ passed13.11.2025 10:40:2221min 53stest pipeline
CentOS Stream 9 - 3.11CentOS-Stream-9x86_64✅ passed13.11.2025 10:50:2820min 56stest pipeline
CentOS Stream 10 - 3.12-minimalCentOS-Stream-10x86_64✅ passed13.11.2025 10:05:4618min 58stest pipeline
CentOS Stream 9 - 3.9CentOS-Stream-9x86_64✅ passed13.11.2025 11:04:1921min 43stest pipeline
Fedora - 3.13Fedora-latestx86_64✅ passed13.11.2025 11:07:0324min 15stest pipeline
RHEL9 - OpenShift 4 - 3.12-minimalRHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 11:02:5227min 40stest pipeline
RHEL10 - OpenShift 4 - 3.12-minimalRHEL-10-Nightlyx86_64✅ passed13.11.2025 11:08:2420min 25stest pipeline
RHEL8 - OpenShift 4 - 3.9RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 11:04:5724min 50stest pipeline
RHEL9 - OpenShift 4 - 3.9RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 11:14:3226min 41stest pipeline
RHEL9 - OpenShift 4 - 3.12RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 10:25:4227min 23stest pipeline
RHEL9 - OpenShift 4 - 3.11RHEL-9.6.0-Nightlyx86_64✅ passed13.11.2025 11:13:1627min 56stest pipeline
RHEL8 - OpenShift 4 - 3.12-minimalRHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:54:0219min 6stest pipeline
RHEL8 - OpenShift 4 - 3.12RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 11:08:3320min 16stest pipeline
RHEL8 - OpenShift 4 - 3.11RHEL-8.10.0-Nightlyx86_64✅ passed13.11.2025 10:26:4021min 11stest pipeline
CentOS Stream 9 - 3.11-minimalCentOS-Stream-9x86_64✅ passed13.11.2025 10:05:3421min 20stest pipeline

@phracek
Copy link
Member Author

phracek commented Nov 11, 2025

RHEL8 failures are caused by CDN errors:

[MIRROR] libffi-devel-3.1-24.el8.x86_64.rpm: Curl error (28): Timeout was reached for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/baseos/os/Packages/l/libffi-devel-3.1-24.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] hunspell-en-0.20140811.1-12.el8.noarch.rpm: Curl error (56): Failure when receiving data from the peer for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/appstream/os/Packages/h/hunspell-en-0.20140811.1-12.el8.noarch.rpm [Received HTTP code 503 from proxy after CONNECT]
[MIRROR] libtalloc-2.4.1-0.el8.x86_64.rpm: Curl error (28): Timeout was reached for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/baseos/os/Packages/l/libtalloc-2.4.1-0.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] openldap-devel-2.4.46-21.el8_10.x86_64.rpm: Curl error (28): Timeout was reached for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/baseos/os/Packages/o/openldap-devel-2.4.46-21.el8_10.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] hunspell-en-GB-0.20140811.1-12.el8.noarch.rpm: Curl error (56): Failure when receiving data from the peer for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/appstream/os/Packages/h/hunspell-en-GB-0.20140811.1-12.el8.noarch.rpm [Received HTTP code 503 from proxy after CONNECT]
[MIRROR] libffi-devel-3.1-24.el8.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for https://stagecdn.redhat.com/content/dist/rhel8/8/x86_64/baseos/os/Packages/l/libffi-devel-3.1-24.el8.x86_64.rpm [Received HTTP code 503 from proxy after CONNECT]
[FAILED] libffi-devel-3.1-24.el8.x86_64.rpm: No more mirrors to try - All mirrors were already tried without success

The downloaded packages were saved in cache until the next successful t

Add distgen generated files

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
@phracek
Copy link
Member Author

phracek commented Nov 12, 2025

[test][test-all]

@phracek
Copy link
Member Author

phracek commented Nov 13, 2025

The new container-ci-suite was released. Let's re-test it.

[test-all]

@phracek
Copy link
Member Author

phracek commented Nov 13, 2025

Python failures are:

C10S - PyTest - 3.12-minimal:

[notice] A new release of pip is available: 24.2 -> 25.3
[notice] To update, run: pip install --upgrade pip
--> 04db29fbc4be
[2/2] STEP 1/6: FROM quay.io/sclorg/python-312-minimal-c10s:3.12-minimal
[2/2] STEP 2/6: COPY --from=builder $APP_ROOT $APP_ROOT
--> 8b1aba1b0f19
[2/2] STEP 3/6: USER 0
--> 8f0c8050bef9
[2/2] STEP 4/6: RUN microdnf install -y httpd enchant
Downloading metadata...
Downloading metadata...
Downloading metadata...
error: No package matches 'enchant'
Error: building at STEP "RUN microdnf install -y httpd enchant": while running runtime: exit status 1

It caused, I guess, main image should not be pulled. C10S - 3.12 should not be exists in quay.io/sclorg/python-312-c10s. RHEL10 does not exists.

Fedora PyTest - 3.13 - test_container_basics.py::TestS2IPythonContainer::test_dockerfiles[Dockerfile.tpl] INFO:Image name to test: quay.io/fedora/python3-313:3.13

Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 428.5 MB/s eta 0:00:00
Building wheels for collected packages: psycopg2-binary
  Building wheel for psycopg2-binary (pyproject.toml): started
  Building wheel for psycopg2-binary (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error
  
  × Building wheel for psycopg2-binary (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [115 lines of output]
      /tmp/pip-build-env-jyymjeu8/overlay/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
      !!
      
              ********************************************************************************
              Please consider removing the following classifiers in favor of a SPDX license expression:
      
              License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
      
              See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
              ********************************************************************************
      
      !!
        self._finalize_license_expression()
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-313/psycopg2
  

RHEL8 - 3.11 and RHEL9-PyTest-3.11

[notice] To update, run: python3.11 -m pip install --upgrade pip
---> Installing dependencies via pipenv ...
Courtesy Notice:
Pipenv found itself running within a virtual environment,  so it will 
automatically use that environment, instead of  creating its own for any 
project. You can set
PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and 
create  its own instead.
You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Installing dependencies from Pipfile.lock (63c7a0)...
Looking in indexes: https://pypi.python.org/simple
Obtaining file:///opt/app-root/src (from -r 
/tmp/pipenv-48jubp3a-requirements/pipenv-7im0x6ci-reqs.txt (line 1))
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Checking if build backend supports build_editable: started
  Checking if build backend supports build_editable: finished with status 'done'
ERROR: Exception:
Traceback (most recent call last):
  File 
"/opt/app-root/src/.local/venvs/pipenv/lib/python3.11/site-packages/pipenv/patch
ed/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
    status = _inner_run()
             ^^^^^^^^^^^^
  File 
"/opt/app-root/src/.local/venvs/pipenv/lib/python3.11/site-packages/pipenv/patch
ed/pip/_internal/cli/base_command.py", line 96, in _inner_run
    return self.run(options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/opt/app-root/src/.local/venvs/pipenv/lib/python3.11/site-packages/pipenv/patch
ed/pip/_internal/cli/req_command.py", line 68, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File 

@frenzymadness
Copy link
Member

It caused, I guess, main image should not be pulled. C10S - 3.12 should not be exists in quay.io/sclorg/python-312-c10s. RHEL10 does not exists.

I don't understand this sentence, sorry. We have dockerfiles here for 3.12 and 3.12-minimal based on C10S.

Fedora PyTest - 3.13 - test_container_basics.py::TestS2IPythonContainer::test_dockerfiles[Dockerfile.tpl] INFO:Image name to test: quay.io/fedora/python3-313:3.13

The version of psycopg2-binary I see in the logs indicates that this test used django-ex branch 3.2.x and that's incorrect. New Pythons like 3.13 should use Django version/branch 4.2.x that has newer psycopg2-binary dependency and that new version provides wheels for Python 3.13.

RHEL8 - 3.11 and RHEL9-PyTest-3.11

I need more time to investigate the last one. I'm not able to reproduce locally so I need to build the container image first.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants