This package allows to connect and access Kiwi TCMS API.
https://tcms-api.readthedocs.io/en/latest/modules/tcms_api.html
- Update requirements and imports for the
strtobool()
function
Respect configuration passed as arguments to the
TCMS()
class, for example:TCMS("https://kiwitcms.example.com/xml-rpc/", "api-bot", "keep-me-secret")
Adjust usage examples and documentation for
.exec()
. Closes Issue #77Internal changes related to testing and building this package
- Refactor RPC connection refresh using a proxy-class pattern which also
takes care to call
.login()
upon refresh
- Refresh internal https transport every 4 minutes to avoid an
ssl.SSLEOFError: EOF occurred in violation of protocol
error on Python 3.10 and later when executing very long running tests. Limited to non-kerberos connections! - Include Python version in
User-Agent
header - Send XML-RPC method name in
Referer:
header to improve logs
- Refactor calling
.login()
method as part of__init__
again because the entire Kiwi TCMS test suite depends on this behavior
- Limit TestPlan.name and TestCase.summary length before any usage avoiding possible records mismatch between filter & create operations
- When creating a TestPlan limit name to 255 characters
- When creating a TestCase limit summary to 255 characters
- Build & test this package with Python 3.11
- Replace
urllib.parse
functions deprecated since Python 3.8 - Refactor issues reported by newer version of pylint
- Refactor issues reported by CodeQL
- Reformat source code with Black
- Enable ReadTheDocs CI
- New arguments for
plugin_helpers.Backend.update_test_execution()
method. Now accepts thestart_date
andstop_date
arguments at the end of its signature - Start testing the client library with Python 3.9
- Fallback to C:tcms.conf in case we're on Windows
- [pre-commit.ci] pre-commit autoupdate
- Make it possible for plugins to print info about created/reused TP/TR
- Specify start_date when creating a TestRun
- Make plugin prefix configurable via
TCMS_PREFIX
environment variable. Fixes Issue #6 - Use
TCMS_PARENT_PLAN
environment variable if specified. Will configure a parent TestPlan. Fixes Issue #4 - Introduce
plugin_helpers.Backend.name
andplugin_helpers.Backend.version
attributes - Convert
plugin_helpers.Backend.default_tester_id
into a cached property - Use the account sending the API request if
default_tester_id
is None. That avoide the use ofUser.filter
API method for which most users may not be authorized - Sanity check and sanitize URL config. Refs Issue #45
- Allow the environment variable
TCMS_DEFAULT_TESTER_ID
to override internal queries, pointing directly to the user who will create new test plans, test runs and update test executions. - Internal updates around CI
WARNING: contains backwards incompatible changes!
- Method
plugin_helpers.Backend.add_test_case_to_run()
now returns a list - Adjust internal API calls for upcoming Kiwi TCMS v11.0
- Still compatible with Kiwi TCMS v10.x API
- Start using f-strings. Available since Python 3.6 which is the minimum
required version for
tcms-api
anyway
WARNING: contains backwards incompatible changes!
- Compatible with Kiwi TCMS v10.0 or later
WARNING: contains backwards incompatible changes!
- Compatible with Kiwi TCMS v9.0 or later
- Method
Backend.build_id()
doesn't receiveproduct_id
as firsts parameter anymore! Related to Kiwi TCMS Issue #246
- Use a sub-package to install gssapi, see installation instructions
- Fix
super()
call inCookieTransport
class to make this package compatible with Python 3.8 (Václav Klikar)
- Add instructions how to install
gssapi
because they don't ship binary packages on Linux - Provide
plugin_helpers.Backend.get_statuses_by_weight()
and fall-back to it if TestExecutionStatus can't be found by name. This is to be used by Kiwi TCMS plugins (Bryan Mutai)
- Use
gssapi
library for kerberos communications on both Linux and Windows - Requires MIT Kerberos for Windows, see installation instructions
This version adds additional methods and functionality that can be used by Kiwi TCMS plugins written in Python.
- Modify
plugin_helpers.Backend.test_case_get_or_create()
to return tuple (dict, bool). WARNING: this will break existing plugins plugin_helpers.Backend
will useTCMS_PLAN_ID
environment variable if specified. This allows the user to select an existing TestPlan to save new results into. Fixes Issue #5- Add
plugin_helpers.Backend.finish_test_run()
which may be called by plugins to indicate that a TestRun has been finished - Add
plugin_helpers.Backend.default_tester_id()
and updateTestExecution.tested_by
when changing status - Use
default_tester_id()
when creating a new TestRun - When creating new test run always set TR.manager := TP.author
and make sure that
TestPlan.create()
will also specify author
- Use
winkerberos
dependency on Microsoft Windows platform (@mtg-edmund-tse) - Setting rename in config file:
use_mod_kerb
->use_kerberos
- Bug-fix: don't fall back to user/pass if kerberos is configured
- Bug-fix: send correctly formatted authorization request header, per RFC-4459
- Bug-fix: properly authenticate with Kiwi TCMS via kerberos ticket if requested to do so
- Start sending
User-Agent: tcms-api/<version>
for all requests - Enable integration testing with and without Kerberos
- Enable testing on Windows
This version is compatible only with Kiwi TCMS v8.0 or later!
- Do not use deprecated field
product
inTestCase.create
API method - Set
TestCase.is_automated
toTrue
This version is compatible only with Kiwi TCMS v8.0 or later!
- Adjusts
plugin_helpers
module to reflect backwards incompatible API changes introduced in Kiwi TCMS v8.0
- Fix a bug in how
use_mod_kerb
setting was evaluated which lead to always preferring Kerberos which in turn was causing issues on Windows.
This version is compatible only with Kiwi TCMS v6.7 or later! For older server versions use tcms-api==5.3!
This version contains breaking changes in plugin_helpers
!
- Switch from
TestCaseRun
toTestExecution
API. Fixes Issue #7 - Rename
plugin_helpers.Backend.update_test_case_run()
toplugin_helpers.Backend.update_test_execution()
- Copyright (c) 2012 Red Hat, Inc. All rights reserved.
- Copyright (c) 2017-2023 Kiwi TCMS Project and its contributors. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.