TestRail client implementing all API v2.
Project description
TestRail client by BestDoctor
Implements API v2 for TestRail.
Installation
pip install best_testrail_client
Prerequisites
-
Enabled API in your TestRail project.
-
Generated 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:
- Create an issue with bug you found or proposal you have. Wait for approve from maintainer.
- Create a pull request. Make sure all checks are green.
- Fix review comments if any.
- Be awesome.
Here are useful tips:
- You can run all checks and tests with
make check
. Please do it before TravisCI does. - We use BestDoctor python styleguide.
- We respect Django CoC. Make soft, not bullshit.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file best_testrail_client-0.0.3.tar.gz
.
File metadata
- Download URL: best_testrail_client-0.0.3.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84bb1f3ed8dfec0f2b0b3f6b40c1102fef020b9bdf3090070b1311715923a593 |
|
MD5 | f5df31df9e586ec317b53b8abc61e47e |
|
BLAKE2b-256 | b6d342f55570a0a71c8bc0bf8661fd89b94b5c4e9f6578586a4b5b3fb8348fc4 |