Public test suite for the dsviper
Python wheel — the binding over the Viper C++ runtime.
This repository serves two purposes:
- Regression net. Run as a CI check against released
dsviperwheels to catch behavioural regressions in the Python binding. - Reference material. Every public
dsviperAPI surface is exercised here. Theunit/directory is the canonical place to read working examples — useful for human contributors and autonomous agents alike.
Python 3.14+, the dsviper wheel, and the test-suite requirements:
pip install dsviper
pip install -r requirements.txtThe tests use the standard library unittest framework. Two modules
(test_commit_database_blob, test_database_blob) additionally
import numpy to exercise the blob ↔ array interop — listed in
requirements.txt.
From the repository root:
./run_test.sh # macOS / Linux
run_test.bat # WindowsThese both wrap python -m unittest discover unit.
To run a single file, class, or method:
python -m unittest unit.test_value_double -v
python -m unittest unit.test_value_double.TestValueDoubleType -v
python -m unittest unit.test_value_double.TestValueDoubleType.test_name -vunit/ # 90+ unittest modules covering the dsviper API
run_test.sh, run_test.bat # convenience launchers
Test files follow the pattern test_<component>.py and group their
test cases into thematic classes (e.g. TestValueDoubleType,
TestValueDoubleConstruction, TestValueDoubleErrorCases).
This suite tracks the Viper 1.2.x line of dsviper. The
canonical branch is LTS-1.2, which moves in lockstep with
viper's LTS-1.2 line; main is currently a mirror of it.
Future major lines of dsviper may live on dedicated branches.
This project is licensed under the MIT License — see LICENSE.
At runtime, this project depends on the dsviper Python package
(distributed on PyPI), which is proprietary (PyPI classifier
License :: Other/Proprietary License). See
https://pypi.org/project/dsviper/
for the package's licensing posture and contact information.