Skip to main content

tciqrestclient — Python Client for TestCenter IQ

tciqrestclient is a standalone Python client for TestCenter IQ's orion-res results service REST API. It gives automation engineers Python-native access to IQ's named views, live/snapshot data, query modifiers, database lifecycle management, and report generation — without hand-crafting query JSON or managing discovery/reconnect logic themselves.

It is packaged independently of stcrestclient (no WAMP, no socket code, no shared dependency) but is designed to be installed alongside it — see Installation.

Installation

pip install -e ".[test]"      # from this directory, editable + test deps
# or, once published:
pip install tciqrestclient

Requires Python 3.8+.

Don't have this repo cloned? See GETTING_STARTED.md — it covers installing straight from this repo's URL (no manual git clone needed) and using every feature, entirely self-contained.

Quick Start

See QUICKSTART.md — five steps from install to your first real result, no reading required beyond that page.

Every query is one HTTP request. "Live" means calling query() again when you want fresh data — there is no subscription or long-poll mode.

See examples/ for one runnable script per use case (named views, live queries, each chart widget type, report generation, and both discovery modes), or QUICKGUIDE.md for a detailed, task-by-task walkthrough of the whole API with copy-pasteable examples.

Discovery

Precedence (highest to lowest): explicit base_url kwarg → explicit host/port kwarg → install_dir kwarg → explicit aion_url kwarg → TCIQ_BASE_URL env → TCIQ_HOST/TCIQ_PORT env → TCIQ_INSTALL_DIR env → AION resolved purely from TCIQ_AION_* env vars (lowest priority). Every explicit kwarg outranks every environment variable, including aion_url= beating an ambient TCIQ_BASE_URL left over in your shell.

Option How to use
Explicit base URL TCIQ_BASE_URL=http://127.0.0.1:9200
Explicit host/port TCIQ_HOST + TCIQ_PORT (always pass both — host alone composes a URL with no port at all, it does not look one up)
Local STC install TCIQ_INSTALL_DIR=<dir> (reads orion-res.yaml)
Remote STC TCIQ_INSTALL_DIR=<dir> (reads stcbll.ini)
AION platform TCIQ_AION_URL + TCIQ_AION_USERNAME + TCIQ_AION_PASSWORD

Every option can also be passed as a constructor kwarg to IQClient(); explicit kwargs always override the environment. See .env.example for the full list of recognized TCIQ_* variables, and tciqrestclient/config.py's module docstring for the authoritative reference.

API Surface

See API_REFERENCE.md for the complete, method-by-method reference (every parameter, return shape, and exception) — the summary below is just an index.

Import only from the top-level package:

from tciqrestclient import IQClient, IQError, IQViewError   # all public names are in __all__
Area Key methods
Tests / databases list_tests(), get_test(), use_test(), delete_test(), rename_test(), get_database_schema(), list_table_names(), list_fields()
Views list_views(), get_view(), find_view(), list_view_columns(), save_view(), delete_view()
Query query(name=... | definition=..., test_live=, database_id=|user=, snapshot_name=, filters=, sort=, group_by=, time_range=, limit=, timeout=, auto_repair=)
Reports list_report_templates(), generate_report(), get_report(), download_report()

query() is the single public query method for every view type — it inspects the view's view_type internally and dispatches accordingly. It returns a plain list[dict] for single_level_table, paged_single_level_table, x_y_chart, pie_chart, and any definition= call, or a {name: list[dict]} dict for histogram (one query per provider) and boxplot (one query per statistic).

x_y_chart and histogram are confirmed broken against a real server — query(name=...) currently raises IQViewError for both (pie_chart/boxplot are unconfirmed either way). Only single_level_table/paged_single_level_table (the common "table" view type) are confirmed working end-to-end. See HANDOVER.md §9 ("Widget query builders") for the root cause and status of each type.

All errors raise a subclass of IQError (IQConfigError, IQConnectionError, IQRequestError, IQQueryError, IQViewError, IQReportError) — see tciqrestclient/exceptions.py.

Running the Tests

All HTTP is mocked via the responses library — no running orion-res server is needed.

pytest                    # from this directory
pytest -v                 # verbose
pytest -s                 # show stdout

See TESTING.md for the full guide — automated tests, packaging/build checks, and the manual/integration test plan for validating this client against a real orion-res/AION server (including how to re-capture the fixtures needed to un-skip the 33 tests that depend on real captured data).

Further Reading

See QUICKSTART.md for the fastest path to your first result, and API_REFERENCE.md for the complete symbol-by-symbol reference once you know which method you're looking for. See GETTING_STARTED.md if you (or whoever you're handing this to) don't have this repo cloned — it's a fully self-contained usage guide that works from just a pip install. See QUICKGUIDE.md for the equivalent full task-by-task guide assuming you do have the repo (it also links to the runnable examples/ scripts), and HANDOVER.md at the repository root for the full architecture writeup, per-requirement status against the PRD, known gaps, and prioritized next steps.

Metadata

Release files for tciqrestclient 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tciqrestclient 0.1.1
File Size Uploaded
tciqrestclient-0.1.1.tar.gz 224.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tciqrestclient 0.1.1
File Interpreter ABI Platform
tciqrestclient-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 287.3 kB

Release files / tciqrestclient-0.1.1.tar.gz

Download URL tciqrestclient-0.1.1.tar.gz
Size 224.2 kB
Tags Source
SHA-256 checksum
How to use checksums
634d4c59cd05c2d7922d6502054be656d225f89562be87acd3ff1119c2585e21
BLAKE2b-256 checksum
How to use checksums
de255e6c7c25fa6117a132e75f34495a0dd7584d5969f12c423a70f767657f1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release files / tciqrestclient-0.1.1-py3-none-any.whl

Download URL tciqrestclient-0.1.1-py3-none-any.whl
Size 63.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7d638cc2bb9fe158e95201b8f8594a7f8fd6b6eec92b95a7f7274de15c4104b
BLAKE2b-256 checksum
How to use checksums
31933c6645a372471e7a2ff6436cc41410447f3a2511c8b91b259a2247f349e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page