Skip to main content

Battle-tested InterSystems IRIS infrastructure utilities for Python development

Project description

IRIS DevTester

Battle-tested InterSystems IRIS infrastructure utilities for Python development

PyPI version Python Versions License: MIT Test Coverage

What is This?

IRIS DevTester is a comprehensive Python package that provides automatic, reliable, production-tested infrastructure for InterSystems IRIS development. It handles connectivity, container lifecycles, and test data management, codifying years of experience into a reusable toolkit.

Problems It Solves

  • Auto-Remediation: Fixes "Password change required" and expired accounts automatically
  • Port Management: Eliminates conflicts when running tests in parallel
  • Isolation: Ensures every test gets a clean, isolated database instance
  • Performance: DBAPI-first connection pooling is 3x faster than traditional JDBC
  • Data Refresh: High-speed GOF fixture loading (10-100x faster than SQL inserts)

Quick Start

1. Install

pip install iris-devtester[all]

2. Start a Container

iris-devtester container up

3. Write and Run a Test

from iris_devtester.containers import IRISContainer

def test_connection():
    with IRISContainer.community() as iris:
        conn = iris.get_connection()
        cursor = conn.cursor()
        cursor.execute("SELECT 1")
        assert cursor.fetchone()[0] == 1

Container API

Basic Usage

from iris_devtester.containers import IRISContainer

# Community Edition (auto-detects ARM64 vs x86)
with IRISContainer.community() as iris:
    conn = iris.get_connection()

# Enterprise Edition (requires license)
with IRISContainer.enterprise(license_key="/path/to/iris.key") as iris:
    conn = iris.get_connection()

Builder Methods

# Set a custom container name (for debugging, logs, multiple containers)
iris = IRISContainer.community().with_name("my-test-db")

# Set credentials
iris = IRISContainer.community().with_credentials("_SYSTEM", "MyPassword")

# Pre-configure password (set via IRIS_PASSWORD env var at startup)
iris = IRISContainer.community().with_preconfigured_password("MyPassword")

# Chain multiple options
with IRISContainer.community() \
    .with_name("integration-test-db") \
    .with_credentials("_SYSTEM", "TestPass123") as iris:
    conn = iris.get_connection()

Constructor Parameters

IRISContainer(
    image="intersystemsdc/iris-community:latest",  # Docker image
    username="SuperUser",                           # Default username
    password="SYS",                                 # Default password
    namespace="USER",                               # Default namespace
    name="my-container",                            # Container name (alternative to with_name)
)

Key Features

  • 🔐 Automatic Password Management: Remediates security flags using official system APIs.
  • 🐳 Container Lifecycle: CLI and Python API for IRIS container management (up, start, stop).
  • 📦 DAT Fixture Management: Create and load reproducible test fixtures in seconds.
  • ⚡ DBAPI-First Performance: Automatically selects the fastest available driver.
  • 📊 Resource Monitoring: Resource-aware performance tracking.

AI-Assisted Development

This project is optimized for AI coding assistants:

Documentation

License

MIT License - See LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iris_devtester-1.9.3.tar.gz (458.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iris_devtester-1.9.3-py3-none-any.whl (143.4 kB view details)

Uploaded Python 3

File details

Details for the file iris_devtester-1.9.3.tar.gz.

File metadata

  • Download URL: iris_devtester-1.9.3.tar.gz
  • Upload date:
  • Size: 458.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for iris_devtester-1.9.3.tar.gz
Algorithm Hash digest
SHA256 7cd0bf9ead77a2ce180da5e52517f7d6782024b3cca729ea8ac22530d6b79e77
MD5 30199cf2ce7b2dece8d6dbeab6ec134a
BLAKE2b-256 d3c48126e0f9b995a0f81d0b4460f6f7bdff161b3b9c4f2f68094bfd47eb2a99

See more details on using hashes here.

File details

Details for the file iris_devtester-1.9.3-py3-none-any.whl.

File metadata

  • Download URL: iris_devtester-1.9.3-py3-none-any.whl
  • Upload date:
  • Size: 143.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for iris_devtester-1.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 41b4e6c726f59bd5117d4c0e2513234255133eaf1bdc6d9bc24fce73cc3c71ae
MD5 36ef7fb3da105900f66f7a16027ff71d
BLAKE2b-256 f02109226cc2bb56af78237a7ad9007bd5f35e199e71deb06deb446f06148798

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page