Qase TMS Python Api Client
pip install qaseio
Qase.io uses API tokens to authenticate requests. You can view an manage your API keys in API tokens pages.
You must replace api_token with your personal API key.
from qaseio.client import QaseApi qase = QaseApi("api_token")
This method allows to retrieve all projects available for your account. You can you limit and offset params to paginate.
projects = qase.projects.get_all()
This method allows to retrieve a specific project.
project = qase.projects.get("PRJCODE")
exists = qase.projects.exists("PRJCODE")
This method is used to create a new project through API.
from qaseio.client.models import ProjectCreate project = qase.projects.create( ProjectCreate("Test project", "PRJCODE") )
This method allows to retrieve all test cases stored in selected project. You can you limit and offset params to paginate.
test_cases = qase.cases.get_all("PRJCODE")
This method allows to retrieve a specific test case.
test_case = qase.cases.get("PRJCODE", 4)
exists = qase.cases.exists("PRJCODE", 4)
This method completely deletes a test case from repository.
qase.cases.delete("PRJCODE", 4)
This method allows to retrieve all test suites stored in selected project. You can you limit and offset params to paginate.
from qaseio.client.models import TestSuiteFilters test_suites = qase.suites.get_all( "PRJCODE", filters=TestSuiteFilters(search="query") )
This method allows to retrieve a specific test suite.
test_suite = qase.suites.get("PRJCODE", 123)
exists = qase.suites.exists("PRJCODE", 123)
This method is used to create a new test plan through API.
from qaseio.client.models import TestSuiteCreate test_suite = qase.suites.create( "PRJCODE", TestSuiteCreate("New test suite"), )
This method is used to update existing test suite through API.
from qaseio.client.models import TestSuiteUpdate test_suite = qase.suites.update( "PRJCODE", 123, TestSuiteUpdate("Updated suite"), )
This method completely deletes a test suite from repository.
qase.suites.delete("PRJCODE", 123)
This method allows to retrieve all milestones stored in selected project. You can you limit and offset params to paginate.
from qaseio.client.models import MilestoneFilters milestones = qase.milestones.get_all( "PRJCODE", filters=MilestoneFilters(search="query") )
This method allows to retrieve a specific milestone.
milestone = qase.milestones.get("PRJCODE", 123)
exists = qase.milestones.exists("PRJCODE", 123)
This method is used to create a new test plan through API.
from qaseio.client.models import MilestoneCreate milestone = qase.milestones.create( "PRJCODE", MilestoneCreate("New test suite"), )
This method is used to update existing milestone through API.
from qaseio.client.models import MilestoneUpdate test_suite = qase.milestones.update( "PRJCODE", 123, MilestoneUpdate("Updated suite"), )
This method completely deletes a milestone from repository.
qase.milestones.delete("PRJCODE", 123)
This method allows to retrieve all shared steps stored in selected project. You can you limit and offset params to paginate.
from qaseio.client.models import SharedStepFilters shared_steps = qase.shared_steps.get_all( "PRJCODE", filters=SharedStepFilters(search="query") )
This method allows to retrieve a specific shared step.
shared_step = qase.shared_steps.get("PRJCODE", "hash")
exists = qase.shared_steps.exists("PRJCODE", "hash")
This method is used to create a new shared step through API.
from qaseio.client.models import SharedStepCreate shared_step = qase.shared_steps.create( "PRJCODE", SharedStepCreate("New step", "action"), )
This method is used to update existing shared step through API.
from qaseio.client.models import SharedStepUpdate shared_step = qase.shared_steps.update( "PRJCODE", "hash", SharedStepUpdate("Updated step"), )
This method completely deletes a shared step from repository.
qase.shared_steps.delete("PRJCODE", "hash")
This method allows to retrieve all test plans stored in selected project. You can you limit and offset params to paginate.
test_plans = qase.plans.get_all("PRJCODE")
This method allows to retrieve a specific test plan.
test_plan = qase.plans.get("PRJCODE", 123)
exists = qase.plans.exists("PRJCODE", 123)
This method is used to create a new test plan through API.
from qaseio.client.models import TestPlanCreate test_plan = qase.plans.create( "PRJCODE", TestPlanCreate("New test run", [1, 2, 3]), )
This method is used to update existing test plan through API.
from qaseio.client.models import TestPlanCreate test_plan = qase.plans.update( "PRJCODE", 123, TestPlanCreate("New test run", [1, 2, 3]), )
This method completely deletes a test plan from repository.
qase.plans.delete("PRJCODE", 123)
This method allows to retrieve all test runs stored in selected project. You can you limit and offset params to paginate.
from qaseio.client.models import TestRunInclude test_runs = qase.runs.get_all("PRJCODE", include=TestRunInclude.CASES)
This method allows to retrieve a specific test run.
test_run = qase.runs.get("PRJCODE", 4)
exists = qase.runs.exists("PRJCODE", 4)
This method is used to create a new test run through API.
from qaseio.client.models import TestRunCreate test_run = qase.runs.create( "PRJCODE", TestRunCreate("Test run", [1, 2, 3]), )
This method completely deletes a test run from repository.
qase.runs.delete("PRJCODE", 4)
This method allows to retrieve all test run results stored in selected project. You can you limit and offset params to paginate.
test_run_results = qase.results.get_all("PRJCODE")
This method allows to retrieve a specific test run result.
test_run_result = qase.results.get("PRJCODE", "2898ba7f3b4d857cec8bee4a852cdc85f8b33132")
This method is used to create a new test run result through API.
from qaseio.client.models import TestRunResultCreate, TestRunResultStatus test_run_result = qase.results.create( "PRJCODE", 4, TestRunResultCreate(123, TestRunResultStatus.PASSED), )
This method is used to update existing test run result through API.
from qaseio.client.models import TestRunResultUpdate, TestRunResultStatus test_run_result = qase.results.update( "PRJCODE", 4, "2898ba7f3b4d857cec8bee4a852cdc85f8b33132", TestRunResultUpdate(TestRunResultStatus.PASSED), )
This method completely deletes a test run result from repository.
qase.results.delete("PRJCODE", 4, "2898ba7f3b4d857cec8bee4a852cdc85f8b33132")
This method allows to retrieve all defects stored in selected project. You can you limit and offset params to paginate.
from qaseio.client.models import DefectStatus, DefectFilters defects = qase.defects.get_all("PRJCODE", filter=DefectFilters(DefectStatus.OPEN))
This method allows to retrieve a specific defect.
defect = qase.defects.get("PRJCODE", 4)
exists = qase.defects.exists("PRJCODE", 4)
This method is used to resolve defect through API.
defect = qase.defects.resolve("PRJCODE", 4)
This method completely deletes a defect from repository.
qase.defects.delete("PRJCODE", 4)
This method allows to retrieve all custom fields stored in selected project. You can you limit and offset params to paginate.
custom_fields = qase.custom_fields.get_all("PRJCODE")
This method allows to retrieve a specific custom field.
custom_field = qase.custom_fields.get("PRJCODE", 123)
exists = qase.custom_fields.get("PRJCODE", 123)
This method allows to retrieve all attachments stored in team. You can you limit and offset params to paginate.
attachments = qase.attachments.get_all()
This method allows to retrieve a specific attachment.
attachment = qase.attachments.get("<hash>")
exists = qase.attachments.exists("<hash>")
This method is used to upload new attachments through API. It supports different input formats
from qaseio.client.models import MimeTypes results = qase.attachments.upload( "PRJCODE", "/absolute/path/to/file", # Upload file from absolute path "./relative/path/to/file", # Upload file from relative path # Upload file from path and specify mime-type ("./path/to/file", MimeTypes.CSV), # Upload bytes with given mime-type and filename (b"some bytes data", MimeTypes.JSON, "filename.json"), )
You can specify as much files to upload as you need, according to API limits.
This method completely deletes a attachment from repository.
qase.attachments.delete("<hash>")
This method allows to retrieve all users in your team. You can you limit and offset params to paginate.
users = qase.users.get_all()
This method allows to retrieve a specific user in your team.
user = qase.users.get(123)
exists = qase.users.get(123)
Install project locally:
python3 -m venv .venv
source .venv/bin/activate
python setup.py developInstall dev requirements:
pip install pre-commit pre-commit install
Test project:
tox