Metadata-Version: 2.4
Name: iris-devtester
Version: 1.8.1
Summary: Battle-tested InterSystems IRIS infrastructure utilities for Python development
Author-email: InterSystems Community <community@intersystems.com>
Maintainer-email: Thomas Dyar <thomas.dyar@intersystems.com>
Project-URL: Homepage, https://github.com/intersystems-community/iris-devtester
Project-URL: Documentation, https://github.com/intersystems-community/iris-devtester/blob/main/README.md
Project-URL: Repository, https://github.com/intersystems-community/iris-devtester
Project-URL: Issues, https://github.com/intersystems-community/iris-devtester/issues
Project-URL: Changelog, https://github.com/intersystems-community/iris-devtester/blob/main/CHANGELOG.md
Project-URL: Agent Skills, https://github.com/intersystems-community/iris-devtester/blob/main/SKILL.md
Project-URL: Getting Started, https://github.com/intersystems-community/iris-devtester/blob/main/docs/GETTING_STARTED.md
Project-URL: Troubleshooting, https://github.com/intersystems-community/iris-devtester/blob/main/docs/TROUBLESHOOTING.md
Keywords: intersystems,iris,database,testing,testcontainers,docker,devtools
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Database
Classifier: Framework :: Pytest
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: testcontainers>=4.0.0
Requires-Dist: testcontainers-iris>=1.2.2
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: docker>=6.0.0
Requires-Dist: filelock>=3.13.0
Requires-Dist: click>=8.0.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dbapi
Requires-Dist: intersystems-irispython>=3.2.0; extra == "dbapi"
Provides-Extra: jdbc
Requires-Dist: jaydebeapi>=1.2.3; extra == "jdbc"
Requires-Dist: JPype1>=1.4.0; extra == "jdbc"
Provides-Extra: all
Requires-Dist: intersystems-irispython>=3.2.0; extra == "all"
Requires-Dist: jaydebeapi>=1.2.3; extra == "all"
Requires-Dist: JPype1>=1.4.0; extra == "all"
Provides-Extra: test
Requires-Dist: pytest>=8.0.0; extra == "test"
Requires-Dist: pytest-cov>=5.0.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "test"
Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
Provides-Extra: dev
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: isort>=5.13.0; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Requires-Dist: flake8>=7.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
Requires-Dist: build>=1.0.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
Dynamic: license-file

# IRIS DevTester

**Battle-tested InterSystems IRIS infrastructure utilities for Python development**

[![PyPI version](https://badge.fury.io/py/iris-devtester.svg)](https://pypi.org/project/iris-devtester)
[![Python Versions](https://img.shields.io/pypi/pyversions/iris-devtester.svg)](https://pypi.org/project/iris-devtester/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Test Coverage](https://img.shields.io/badge/coverage-94%25-brightgreen.svg)](https://github.com/intersystems-community/iris-devtester)

## 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.

## The Problem 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 DAT fixture loading (10-100x faster than SQL inserts).

## Quick Start

### 1. Install
```bash
pip install iris-devtester[all]
```

### 2. Start a Container
```bash
iris-devtester container up
```

### 3. Write and Run a Test
```python
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
```

## 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:
- **[Agent Skill Manifest](https://github.com/intersystems-community/iris-devtester/blob/main/SKILL.md)** - Hierarchical guidance for Claude, Cursor, and Copilot.
- **[AGENTS.md](https://github.com/intersystems-community/iris-devtester/blob/main/AGENTS.md)** - Common build and test commands.

## Documentation

- **[Getting Started](https://github.com/intersystems-community/iris-devtester/blob/main/docs/GETTING_STARTED.md)**
- **[Troubleshooting Guide](https://github.com/intersystems-community/iris-devtester/blob/main/docs/TROUBLESHOOTING.md)**
- **[Examples](https://github.com/intersystems-community/iris-devtester/tree/main/examples/)**
- **[Codified Learnings](https://github.com/intersystems-community/iris-devtester/tree/main/docs/learnings/)**

## License

MIT License - See [LICENSE](https://github.com/intersystems-community/iris-devtester/blob/main/LICENSE)
