The docker-testing directory contains the necessary files for building and
running tests from the perspective of a specific client node in a larger network.
We currently allow a choice of Python interpreter and iRODS server to be installed on the client and provider nodes of a simulated network topology.
The choice of versions are dictated when running the test:
|:------------------:|:---------------:|
| Environment Variable | Valid Range |
|---|---|
| IRODS_PACKAGE_VERSION | 4.3.1 to 5.0.2 |
| PYTHON_VERSION | 3.9 to 3.13 |
| :------------------- | ----------------- |
Currently the database server is fixed as Postgres.
The file $REPO/.github/workflows/run-the-tests.yml
(where $REPO is the /path/to/local/python-irodsclient repository)
contains commands for starting the server and client containers and running the PRC
suite in response to a push or pull-request.
The test suite can also be run on any workstation with docker compose installed. What follows is a short summary of how to run the test configuration at the bench. It is this procedure which is run within the Github workflows.
-
cd into top level of $REPO
-
run:
./docker-testing/start_containers.sh 4.3.4 3.11This builds and runs the docker images for the project, with "4.3.4" being the iRODS version installed on the provider and "3.11" is the version of python run on the client side.
-
run:
docker exec <name-of-python-client-container> /repo_root/docker-testing/run_tests.sh(Note:
/repo_rootis an actual literal path, internal to the container.) You'll see the test output displayed on the console. At completion, xmlrunner outputs are in /tmp. -
use
docker logs -fwith the provider instance name to tail the irods server log output