Skip to main content

TestRail client implementing all API v2.

Project description

TestRail client by BestDoctor

Build Status Maintainability Test Coverage PyPI version PyPI - Python Version

Implements API v2 for TestRail.

Installation

pip install best_testrail_client

Prerequisites

  1. Enabled API in your TestRail project.

    Enable TestRail API

  2. Generated API key.

    Generate API key

Usage

from best_testrail_client.client import TestRailClient
from best_testrail_client.enums import BaseResultStatus
from best_testrail_client.models.result import Result
from best_testrail_client.models.run import Run

# Client initialization
project_url = 'https://<YOUR_PROJECT>.testrail.io/'  # or other URL for self-hosted
login = '<account email>'
api_token = '<generated API token>'

client = TestRailClient(project_url, login, api_token)

# Create Test Run
new_run = Run(
    name='Test Run from API',
    include_all=False,
    case_ids=[1, 2, 3],
)
created_run = client.runs.add_run(run=new_run, project_id=1)

# You can set global Project ID
client.set_project_id(project_id=2)

# Add results for run
results = [
    Result(status_id=BaseResultStatus.PASSED.value, case_id=1, comment='Passed test'),
    Result(status_id=BaseResultStatus.FAILED.value, case_id=2, comment='Failed test'),
    Result(status_id=6, case_id=3, comment='Waiting test'),  # Custom status
]
client.results.add_results_for_cases(run_id=created_run.id, results=results)

# Close run
client.runs.close_run(run_id=created_run.id)

Custom attributes

Custom attributes are stored in custom dictionary attribute in models. It stores all data from API and converts it back.

from best_testrail_client.client import TestRailClient

# Client initialization
project_url = 'https://<YOUR_PROJECT>.testrail.io/'  # or other URL for self-hosted
login = '<account email>'
api_token = '<generated API token>'

client = TestRailClient(project_url, login, api_token)

created_run = client.runs.get_run(run_id=1)

"""
API response looks like:

{
    ...
    'refs': 'SAN-1',
    'custom_status1_count': 0,
    'custom_status2_count': 0,
    'custom_status3_count': 0,
    'custom_status4_count': 0,
    'custom_status5_count': 0,
    'custom_status6_count': 0,
    'custom_status7_count': 0,
    'description': null,
    ...
}

It is now stored in custom attribute:
created_run.custom == {
    'custom_status1_count': 0,
    'custom_status2_count': 0,
    'custom_status3_count': 0,
    'custom_status4_count': 0,
    'custom_status5_count': 0,
    'custom_status6_count': 0,
    'custom_status7_count': 0,
}
"""

Contributing

We would love you to contribute to our project. It's simple:

  1. Create an issue with bug you found or proposal you have. Wait for approve from maintainer.
  2. Create a pull request. Make sure all checks are green.
  3. Fix review comments if any.
  4. Be awesome.

Here are useful tips:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

best_testrail_client-0.0.3.tar.gz (21.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page