# TestZeus CLI
A powerful command-line interface for the TestZeus testing platform.
## Installation
```bash
pip install testzeus-cli
```
## Authentication
Before using the CLI, you need to authenticate with the TestZeus platform:
```bash
testzeus login
```
You will be prompted to enter your email and password. Your credentials are securely stored in your system's keyring.
```bash
testzeus login --profile dev
```
Authentication automatically detects and stores your tenant information, which will be used for all subsequent commands.
### Auth Commands
| Command | Description |
|---------|-------------|
| `login` | Authenticate with TestZeus |
| `logout` | Log out and remove stored credentials |
| `whoami` | Display current authentication status |
## Global Options
The following options can be used with any command:
| Option | Description |
|--------|-------------|
| `--profile` | Configuration profile to use (default: "default") |
| `--api-url` | Custom TestZeus API URL |
| `--verbose` | Enable verbose output |
| `--format` | Output format: json, table, or yaml (default: table) |
## Managing Tests
### List Tests
```bash
testzeus tests list
```
Filter test list with key-value pairs:
```bash
testzeus tests list --filters status=draft
```
Sort and expand related entities:
```bash
testzeus tests list --sort created --expand tags,test_data
```
### Get Test Details
```bash
testzeus tests get <test-id>
testzeus tests get <test-id> --expand tags,test_data
```
### Create Test
Create a test with text-based features:
```bash
testzeus tests create --name "My Test" --feature "Feature: Test something"
```
Create a test with features from a file:
```bash
testzeus tests create --name "My Test" --feature-file ./features.txt
```
Additional options:
```bash
testzeus tests create --name "My Test" --feature-file ./features.txt --status ready --data data_id1 --data data_id2 --tags tag1 --tags tag2 --environment env_id --execution-mode strict
```
### Update Test
Update test name:
```bash
testzeus tests update <test-id> --name "New Name"
```
Update test features from text:
```bash
testzeus tests update <test-id> --feature "Updated feature content"
```
Update test features from a file:
```bash
testzeus tests update <test-id> --feature-file ./updated_features.txt
```
Update other properties:
```bash
testzeus tests update <test-id> --status ready --data data_id1 --tags tag1 --environment env_id
```
### Delete Test
```bash
testzeus tests delete <test-id>
```
## Test Runs
### List Test Runs
```bash
testzeus test-runs list
```
Filter runs by status:
```bash
testzeus test-runs list --filters status=running
```
### Get Test Run Details
```bash
testzeus test-runs get <run-id>
```
Get expanded details including all outputs and steps:
```bash
testzeus test-runs get-expanded <run-id>
```
### Create and Start Test Run
```bash
testzeus test-runs create --name "Run 1" --test <test-id>
```
Create test run with environment or tag:
```bash
testzeus test-runs create --name "Run 1" --test <test-id> --env <env-id> --tag <tag-name>
```
### Cancel Test Run
```bash
testzeus test-runs cancel <run-id>
```
### Watch Test Run Progress
```bash
testzeus test-runs watch <run-id>
testzeus test-runs watch <run-id> --interval 10
```
### Get Test Run Status
```bash
testzeus test-runs status <run-id>
```
### Download Test Run Attachments
```bash
testzeus test-runs download-attachments <run-id>
testzeus test-runs download-attachments <run-id> --output-dir ./my-attachments
```
## Test Data
### List Test Data
```bash
testzeus test-data list
```
Filter by type:
```bash
testzeus test-data list --filters type=test
```
### Get Test Data Details
```bash
testzeus test-data get <data-id>
testzeus test-data get <data-id> --expand related_entities
```
### Create Test Data
Create with inline content:
```bash
testzeus test-data create --name "Test Data 1" --data "{\"key\":\"value\"}"
```
Create with data from a file:
```bash
testzeus test-data create --name "Test Data" --data-file ./data.json
```
Additional options:
```bash
testzeus test-data create --name "Test Data" --type test --status ready --data-file ./data.json
```
### Update Test Data
Update name and other properties:
```bash
testzeus test-data update <data-id> --name "New Data Name" --type updated --status ready
```
Update data content from text:
```bash
testzeus test-data update <data-id> --data "{\"key\":\"updated\"}"
```
Update data content from a file:
```bash
testzeus test-data update <data-id> --data-file ./updated_data.json
```
### Delete Test Data
```bash
testzeus test-data delete <data-id>
```
### File Management for Test Data
Upload a file to test data:
```bash
testzeus test-data upload-file <data-id> <file-path>
```
Delete all files from test data:
```bash
testzeus test-data delete-all-files <data-id>
```
## Environments
### List Environments
```bash
testzeus environments list
```
Filter environments:
```bash
testzeus environments list --filters status=ready
```
### Get Environment Details
```bash
testzeus environments get <env-id>
testzeus environments get <env-id> --expand related_entities
```
### Create Environment
Create with inline data:
```bash
testzeus environments create --name "Test Environment" --data "{\"key\":\"value\"}"
```
Create with data from a file:
```bash
testzeus environments create --name "Test Environment" --data-file ./env_data.json
```
Additional options:
```bash
testzeus environments create --name "Test Environment" --status ready --data-file ./env_data.json --tags "tag1,tag2"
```
### Update Environment
Update environment properties:
```bash
testzeus environments update <env-id> --name "New Name" --status ready
```
Update environment data:
```bash
testzeus environments update <env-id> --data "{\"key\":\"updated\"}"
testzeus environments update <env-id> --data-file ./updated_env_data.json
```
### Delete Environment
```bash
testzeus environments delete <env-id>
```
### File Management for Environments
Upload a file to environment:
```bash
testzeus environments upload-file <env-id> <file-path>
```
Remove a file from environment:
```bash
testzeus environments remove-file <env-id> <file-path>
```
Delete all files from environment:
```bash
testzeus environments delete-all-files <env-id>
```
## Tags
### List Tags
```bash
testzeus tags list
```
Filter tags:
```bash
testzeus tags list --filters name=test
```
### Get Tag Details
```bash
testzeus tags get <tag-id>
```
### Create Tag
```bash
testzeus tags create --name "test-tag" --value "test-value"
```
Create tag without value:
```bash
testzeus tags create --name "simple-tag"
```
### Update Tag
```bash
testzeus tags update <tag-id> --name "new-name" --value "new-value"
```
### Delete Tag
```bash
testzeus tags delete <tag-name>
```
## Configuration
The CLI stores configuration and credentials in your user's config directory. Different profiles can be used to manage multiple TestZeus environments.
Default configuration location:
- Linux/Mac: `~/.testzeus/config.yaml`
- Windows: `%APPDATA%\testzeus\config.yaml`
Passwords are securely stored in your system's keyring.
## Examples
### Complete Workflow
```bash
# Login to TestZeus
testzeus login
# Create test data
testzeus test-data create --name "User Data" --data "{\"username\":\"testuser\"}"
# Create a new test with features from a file
testzeus tests create --name "Login Test" --feature-file ./features/login.feature --data <test_data_id>
# Run the test
testzeus test-runs create --name "Login Run 1" --test <test_id>
# Watch the test run progress
testzeus test-runs watch <test_run_id>
# Check detailed results
testzeus test-runs get-expanded <test_run_id>
# Download any attachments generated during the run
testzeus test-runs download-attachments <test_run_id> --output-dir ./results
```
### Working with Environments
```bash
# Create an environment with data
testzeus environments create --name "Production Environment" --data-file ./prod_config.json --status ready
# Upload additional files to the environment
testzeus environments upload-file <env-id> ./additional_config.yaml
# Create a test that uses the environment
testzeus tests create --name "Production Test" --feature-file ./test.feature --environment <env-id>
```
### Managing Tags
```bash
# Create tags for organizing tests
testzeus tags create --name "regression" --value "suite"
testzeus tags create --name "priority" --value "high"
# Create a test with tags
testzeus tests create --name "Critical Test" --feature-file ./critical.feature --tags tag1 --tags tag2
```
## Error Handling
When an error occurs, the CLI will display an error message. For more detailed information, run any command with the `--verbose` flag:
```bash
testzeus tests list --verbose
```
## Output Formats
The CLI supports multiple output formats:
- `table`: Human-readable tabular format (default)
- `json`: JSON format for programmatic usage
- `yaml`: YAML format
Example:
```bash
testzeus tests list --format json
```
## Development and Contribution
To contribute to the TestZeus CLI, fork the repository and install development dependencies:
```bash
pip install -e ".[dev]"
```
### Release Process
The TestZeus CLI uses GitHub Actions for automated releases to PyPI. To create a release:
1. Use the Makefile's release target: `make release`
2. This will:
- Prompt for version bump type (patch, minor, major)
- Update the version in pyproject.toml
- Commit and create a git tag
- Push changes and tags to GitHub
3. The tag push will automatically trigger the GitHub Actions publish workflow
Raw data
{
"_id": null,
"home_page": "https://github.com/test-zeus-ai/testzeus-cli",
"name": "testzeus-cli",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Shriyansh Agnihotri",
"author_email": "shriyansh@testzeus.com",
"download_url": "https://files.pythonhosted.org/packages/ee/16/82554ad89f51f4f55a4004875473a198a6319cafb295de53158ad24f400e/testzeus_cli-0.0.13.tar.gz",
"platform": null,
"description": "# TestZeus CLI\n\nA powerful command-line interface for the TestZeus testing platform.\n\n## Installation\n\n```bash\npip install testzeus-cli\n```\n\n## Authentication\n\nBefore using the CLI, you need to authenticate with the TestZeus platform:\n\n```bash\ntestzeus login\n```\n\nYou will be prompted to enter your email and password. Your credentials are securely stored in your system's keyring.\n\n```bash\ntestzeus login --profile dev\n```\n\nAuthentication automatically detects and stores your tenant information, which will be used for all subsequent commands.\n\n### Auth Commands\n\n| Command | Description |\n|---------|-------------|\n| `login` | Authenticate with TestZeus |\n| `logout` | Log out and remove stored credentials |\n| `whoami` | Display current authentication status |\n\n## Global Options\n\nThe following options can be used with any command:\n\n| Option | Description |\n|--------|-------------|\n| `--profile` | Configuration profile to use (default: \"default\") |\n| `--api-url` | Custom TestZeus API URL |\n| `--verbose` | Enable verbose output |\n| `--format` | Output format: json, table, or yaml (default: table) |\n\n## Managing Tests\n\n### List Tests\n\n```bash\ntestzeus tests list\n```\n\nFilter test list with key-value pairs:\n```bash\ntestzeus tests list --filters status=draft\n```\n\nSort and expand related entities:\n```bash\ntestzeus tests list --sort created --expand tags,test_data\n```\n\n### Get Test Details\n\n```bash\ntestzeus tests get <test-id>\ntestzeus tests get <test-id> --expand tags,test_data\n```\n\n### Create Test\n\nCreate a test with text-based features:\n\n```bash\ntestzeus tests create --name \"My Test\" --feature \"Feature: Test something\"\n```\n\nCreate a test with features from a file:\n\n```bash\ntestzeus tests create --name \"My Test\" --feature-file ./features.txt\n```\n\nAdditional options:\n```bash\ntestzeus tests create --name \"My Test\" --feature-file ./features.txt --status ready --data data_id1 --data data_id2 --tags tag1 --tags tag2 --environment env_id --execution-mode strict\n```\n\n### Update Test\n\nUpdate test name:\n\n```bash\ntestzeus tests update <test-id> --name \"New Name\"\n```\n\nUpdate test features from text:\n\n```bash\ntestzeus tests update <test-id> --feature \"Updated feature content\"\n```\n\nUpdate test features from a file:\n\n```bash\ntestzeus tests update <test-id> --feature-file ./updated_features.txt\n```\n\nUpdate other properties:\n```bash\ntestzeus tests update <test-id> --status ready --data data_id1 --tags tag1 --environment env_id\n```\n\n### Delete Test\n\n```bash\ntestzeus tests delete <test-id>\n```\n\n## Test Runs\n\n### List Test Runs\n\n```bash\ntestzeus test-runs list\n```\n\nFilter runs by status:\n\n```bash\ntestzeus test-runs list --filters status=running\n```\n\n### Get Test Run Details\n\n```bash\ntestzeus test-runs get <run-id>\n```\n\nGet expanded details including all outputs and steps:\n\n```bash\ntestzeus test-runs get-expanded <run-id>\n```\n\n### Create and Start Test Run\n\n```bash\ntestzeus test-runs create --name \"Run 1\" --test <test-id>\n```\n\nCreate test run with environment or tag:\n\n```bash\ntestzeus test-runs create --name \"Run 1\" --test <test-id> --env <env-id> --tag <tag-name>\n```\n\n### Cancel Test Run\n\n```bash\ntestzeus test-runs cancel <run-id>\n```\n\n### Watch Test Run Progress\n\n```bash\ntestzeus test-runs watch <run-id>\ntestzeus test-runs watch <run-id> --interval 10\n```\n\n### Get Test Run Status\n\n```bash\ntestzeus test-runs status <run-id>\n```\n\n### Download Test Run Attachments\n\n```bash\ntestzeus test-runs download-attachments <run-id>\ntestzeus test-runs download-attachments <run-id> --output-dir ./my-attachments\n```\n\n## Test Data\n\n### List Test Data\n\n```bash\ntestzeus test-data list\n```\n\nFilter by type:\n```bash\ntestzeus test-data list --filters type=test\n```\n\n### Get Test Data Details\n\n```bash\ntestzeus test-data get <data-id>\ntestzeus test-data get <data-id> --expand related_entities\n```\n\n### Create Test Data\n\nCreate with inline content:\n\n```bash\ntestzeus test-data create --name \"Test Data 1\" --data \"{\\\"key\\\":\\\"value\\\"}\"\n```\n\nCreate with data from a file:\n\n```bash\ntestzeus test-data create --name \"Test Data\" --data-file ./data.json\n```\n\nAdditional options:\n```bash\ntestzeus test-data create --name \"Test Data\" --type test --status ready --data-file ./data.json\n```\n\n### Update Test Data\n\nUpdate name and other properties:\n\n```bash\ntestzeus test-data update <data-id> --name \"New Data Name\" --type updated --status ready\n```\n\nUpdate data content from text:\n\n```bash\ntestzeus test-data update <data-id> --data \"{\\\"key\\\":\\\"updated\\\"}\"\n```\n\nUpdate data content from a file:\n\n```bash\ntestzeus test-data update <data-id> --data-file ./updated_data.json\n```\n\n### Delete Test Data\n\n```bash\ntestzeus test-data delete <data-id>\n```\n\n### File Management for Test Data\n\nUpload a file to test data:\n\n```bash\ntestzeus test-data upload-file <data-id> <file-path>\n```\n\nDelete all files from test data:\n\n```bash\ntestzeus test-data delete-all-files <data-id>\n```\n\n## Environments\n\n### List Environments\n\n```bash\ntestzeus environments list\n```\n\nFilter environments:\n```bash\ntestzeus environments list --filters status=ready\n```\n\n### Get Environment Details\n\n```bash\ntestzeus environments get <env-id>\ntestzeus environments get <env-id> --expand related_entities\n```\n\n### Create Environment\n\nCreate with inline data:\n\n```bash\ntestzeus environments create --name \"Test Environment\" --data \"{\\\"key\\\":\\\"value\\\"}\"\n```\n\nCreate with data from a file:\n\n```bash\ntestzeus environments create --name \"Test Environment\" --data-file ./env_data.json\n```\n\nAdditional options:\n```bash\ntestzeus environments create --name \"Test Environment\" --status ready --data-file ./env_data.json --tags \"tag1,tag2\"\n```\n\n### Update Environment\n\nUpdate environment properties:\n\n```bash\ntestzeus environments update <env-id> --name \"New Name\" --status ready\n```\n\nUpdate environment data:\n\n```bash\ntestzeus environments update <env-id> --data \"{\\\"key\\\":\\\"updated\\\"}\"\ntestzeus environments update <env-id> --data-file ./updated_env_data.json\n```\n\n### Delete Environment\n\n```bash\ntestzeus environments delete <env-id>\n```\n\n### File Management for Environments\n\nUpload a file to environment:\n\n```bash\ntestzeus environments upload-file <env-id> <file-path>\n```\n\nRemove a file from environment:\n\n```bash\ntestzeus environments remove-file <env-id> <file-path>\n```\n\nDelete all files from environment:\n\n```bash\ntestzeus environments delete-all-files <env-id>\n```\n\n## Tags\n\n### List Tags\n\n```bash\ntestzeus tags list\n```\n\nFilter tags:\n```bash\ntestzeus tags list --filters name=test\n```\n\n### Get Tag Details\n\n```bash\ntestzeus tags get <tag-id>\n```\n\n### Create Tag\n\n```bash\ntestzeus tags create --name \"test-tag\" --value \"test-value\"\n```\n\nCreate tag without value:\n\n```bash\ntestzeus tags create --name \"simple-tag\"\n```\n\n### Update Tag\n\n```bash\ntestzeus tags update <tag-id> --name \"new-name\" --value \"new-value\"\n```\n\n### Delete Tag\n\n```bash\ntestzeus tags delete <tag-name>\n```\n\n## Configuration\n\nThe CLI stores configuration and credentials in your user's config directory. Different profiles can be used to manage multiple TestZeus environments.\n\nDefault configuration location:\n- Linux/Mac: `~/.testzeus/config.yaml`\n- Windows: `%APPDATA%\\testzeus\\config.yaml`\n\nPasswords are securely stored in your system's keyring.\n\n## Examples\n\n### Complete Workflow\n\n```bash\n# Login to TestZeus\ntestzeus login\n\n# Create test data\ntestzeus test-data create --name \"User Data\" --data \"{\\\"username\\\":\\\"testuser\\\"}\" \n\n# Create a new test with features from a file\ntestzeus tests create --name \"Login Test\" --feature-file ./features/login.feature --data <test_data_id>\n\n# Run the test\ntestzeus test-runs create --name \"Login Run 1\" --test <test_id>\n\n# Watch the test run progress\ntestzeus test-runs watch <test_run_id>\n\n# Check detailed results\ntestzeus test-runs get-expanded <test_run_id>\n\n# Download any attachments generated during the run\ntestzeus test-runs download-attachments <test_run_id> --output-dir ./results\n```\n\n### Working with Environments\n\n```bash\n# Create an environment with data\ntestzeus environments create --name \"Production Environment\" --data-file ./prod_config.json --status ready\n\n# Upload additional files to the environment\ntestzeus environments upload-file <env-id> ./additional_config.yaml\n\n# Create a test that uses the environment\ntestzeus tests create --name \"Production Test\" --feature-file ./test.feature --environment <env-id>\n```\n\n### Managing Tags\n\n```bash\n# Create tags for organizing tests\ntestzeus tags create --name \"regression\" --value \"suite\"\ntestzeus tags create --name \"priority\" --value \"high\"\n\n# Create a test with tags\ntestzeus tests create --name \"Critical Test\" --feature-file ./critical.feature --tags tag1 --tags tag2\n```\n\n## Error Handling\n\nWhen an error occurs, the CLI will display an error message. For more detailed information, run any command with the `--verbose` flag:\n\n```bash\ntestzeus tests list --verbose\n```\n\n## Output Formats\n\nThe CLI supports multiple output formats:\n\n- `table`: Human-readable tabular format (default)\n- `json`: JSON format for programmatic usage\n- `yaml`: YAML format\n\nExample:\n```bash\ntestzeus tests list --format json\n```\n\n## Development and Contribution\n\nTo contribute to the TestZeus CLI, fork the repository and install development dependencies:\n\n```bash\npip install -e \".[dev]\"\n```\n\n### Release Process\n\nThe TestZeus CLI uses GitHub Actions for automated releases to PyPI. To create a release:\n\n1. Use the Makefile's release target: `make release`\n2. This will:\n - Prompt for version bump type (patch, minor, major)\n - Update the version in pyproject.toml\n - Commit and create a git tag\n - Push changes and tags to GitHub\n3. The tag push will automatically trigger the GitHub Actions publish workflow ",
"bugtrack_url": null,
"license": null,
"summary": "Command-line interface for TestZeus testing platform",
"version": "0.0.13",
"project_urls": {
"Homepage": "https://github.com/test-zeus-ai/testzeus-cli",
"Repository": "https://github.com/test-zeus-ai/testzeus-cli"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f0764559d2793829207e0752947c1a285cbdf11b8b1ce27526cb2ff9ed66542f",
"md5": "469ae4fd7cfcdf0d69f1aad3128189a1",
"sha256": "27ca37d854aa2f96d6ddf983d3f1b7c2d212a52b2f656a569550992bf42159cc"
},
"downloads": -1,
"filename": "testzeus_cli-0.0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "469ae4fd7cfcdf0d69f1aad3128189a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.11",
"size": 29261,
"upload_time": "2025-07-14T10:38:26",
"upload_time_iso_8601": "2025-07-14T10:38:26.904513Z",
"url": "https://files.pythonhosted.org/packages/f0/76/4559d2793829207e0752947c1a285cbdf11b8b1ce27526cb2ff9ed66542f/testzeus_cli-0.0.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ee1682554ad89f51f4f55a4004875473a198a6319cafb295de53158ad24f400e",
"md5": "c8a7e6b4e8bc70da9cdd5684ef56749c",
"sha256": "927b76f21adc41972c02dba6e5d19676c6105556387a253750e54155016ebef6"
},
"downloads": -1,
"filename": "testzeus_cli-0.0.13.tar.gz",
"has_sig": false,
"md5_digest": "c8a7e6b4e8bc70da9cdd5684ef56749c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.11",
"size": 21878,
"upload_time": "2025-07-14T10:38:28",
"upload_time_iso_8601": "2025-07-14T10:38:28.125522Z",
"url": "https://files.pythonhosted.org/packages/ee/16/82554ad89f51f4f55a4004875473a198a6319cafb295de53158ad24f400e/testzeus_cli-0.0.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 10:38:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "test-zeus-ai",
"github_project": "testzeus-cli",
"github_not_found": true,
"lcname": "testzeus-cli"
}