testcontainers-python facilitates the use of Docker containers for functional and integration testing.
>>> from testcontainers.iris import IRISContainer
>>> import sqlalchemy
>>> iris_container = IRISContainer("intersystemsdc/iris-community:latest")
>>> with iris_container as iris:
... engine = sqlalchemy.create_engine(iris.get_connection_url())
... with engine.begin() as connection:
... result = connection.execute(sqlalchemy.text("select $zversion"))
... version, = result.fetchone()
>>> version
'IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2023.2 (Build 227U) Mon Jul 31 2023 17:43:25 EDT'
The snippet above will spin up a InterSystems IRIS database in a container. The get_connection_url() convenience method returns a sqlalchemy compatible url we use to connect to the database and retrieve the database version.
It is possible to run Enterprise edition as well, with passing a valid iris.key.
iris_container = IRISContainer(
"containers.intersystems.com/intersystems/iris:2023.3",
license_key="/full/path/to/iris.key",
username="testuser",
password="testpass",
namespace="TEST",
)
username
, password
, namespace
will be created during start of the container with required values, user will get %All role
Demo with Jupiter Notebook
More extensive documentation can be found at Read The Docs.