Metadata-Version: 2.4
Name: osism
Version: 0.20260721.0
Summary: OSISM manager interface
Home-page: https://github.com/osism/python-osism
Author: OSISM GmbH
Author-email: info@osism.tech
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: ClusterShell==1.10.1
Requires-Dist: boto3==1.43.50
Requires-Dist: GitPython==3.1.52
Requires-Dist: Jinja2==3.1.6
Requires-Dist: PyMySQL==1.2.0
Requires-Dist: PyYAML==6.0.3
Requires-Dist: ara==1.7.5
Requires-Dist: celery[redis]==5.6.3
Requires-Dist: cliff==4.15.0
Requires-Dist: deepdiff==9.1.0
Requires-Dist: docker==7.2.0
Requires-Dist: dtrack-auditor==1.5.0
Requires-Dist: fastapi==0.139.2
Requires-Dist: flower==2.0.1
Requires-Dist: hiredis==3.4.0
Requires-Dist: jc==1.25.7
Requires-Dist: keystoneauth1==5.15.0
Requires-Dist: kombu==5.6.2
Requires-Dist: kubernetes==36.0.3
Requires-Dist: loguru==0.7.3
Requires-Dist: nbcli==0.10.0.dev2
Requires-Dist: openstacksdk==4.17.0
Requires-Dist: paramiko==5.0.0
Requires-Dist: pottery==3.0.1
Requires-Dist: prompt-toolkit==3.0.52
Requires-Dist: pynetbox==7.8.0
Requires-Dist: pytest-testinfra==10.2.2
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-openstackclient==10.2.1
Requires-Dist: redfish==3.3.6
Requires-Dist: setuptools==83.0.0
Requires-Dist: sqlmodel==0.0.39
Requires-Dist: sushy==5.11.1
Requires-Dist: tabulate==0.10.0
Requires-Dist: transitions==0.9.3
Requires-Dist: uvicorn[standard]==0.51.0
Requires-Dist: validators==0.35.0
Requires-Dist: watchdog==6.0.0
Requires-Dist: websockets==16.1.1
Provides-Extra: ansible
Requires-Dist: ansible-runner==2.4.3; extra == "ansible"
Requires-Dist: ansible-core==2.19.11; extra == "ansible"
Provides-Extra: openstack-image-manager
Requires-Dist: openstack-image-manager==0.20260714.0; extra == "openstack-image-manager"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# python-osism

[![Quay](https://img.shields.io/badge/Quay-osism%2Fosism-blue.svg)](https://quay.io/repository/osism/osism)
[![PyPi version](https://badgen.net/pypi/v/osism/)](https://pypi.org/project/osism/)
[![PyPi license](https://badgen.net/pypi/license/osism/)](https://pypi.org/project/osism/)
[![Documentation](https://img.shields.io/static/v1?label=&message=documentation&color=blue)](https://osism.tech/docs/references/cli)

## Running unit tests

Install development dependencies and run the full unit test suite:

```
pipenv install --dev
pipenv run pytest
```

Run a single test module:

```
pipenv run pytest tests/unit/test_smoke.py
```

## Running integration tests

The integration tests in `tests/integration/` exercise the Celery/Redis task
core (broker, queue routing, worker, result backend, Redis streams and locks)
end-to-end. They require a reachable Redis and start a Celery worker from the
same virtualenv; they are skipped automatically when Redis is not running.

```
docker run -d -p 6379:6379 redis:7-alpine
REDIS_HOST=localhost pipenv run pytest tests/integration
```

> **Warning:** The suite mutates live state on the configured Redis. Most keys
> are per-run (UUID-based), but the task-lock test reads, writes and removes the
> fixed global key `osism:task_lock` on the selected `REDIS_DB`. Always point it
> at a disposable Redis (such as the throwaway container above); running it
> against a Redis shared with a real OSISM deployment would clobber an active
> operator lock.
