{"id":26482023,"url":"https://github.com/kiwitcms/tcms-api","last_synced_at":"2025-03-20T03:36:40.872Z","repository":{"id":34587679,"uuid":"173827359","full_name":"kiwitcms/tcms-api","owner":"kiwitcms","description":"Kiwi TCMS client library in Python","archived":false,"fork":false,"pushed_at":"2024-10-08T13:52:01.000Z","size":826,"stargazers_count":5,"open_issues_count":4,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-30T05:42:04.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://kiwitcms.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiwitcms.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://kiwitcms.org/#subscriptions"],"github":["kiwitcms"],"patreon":null,"open_collective":"kiwitcms","ko_fi":null,"tidelift":"pypi/kiwitcms","community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null}},"created_at":"2019-03-04T21:53:12.000Z","updated_at":"2024-10-08T13:52:03.000Z","dependencies_parsed_at":"2024-01-17T20:10:52.614Z","dependency_job_id":"6647f436-a7b7-4349-8836-7f3d03aa31d4","html_url":"https://github.com/kiwitcms/tcms-api","commit_stats":{"total_commits":327,"total_committers":11,"mean_commits":"29.727272727272727","dds":"0.23547400611620795","last_synced_commit":"504a9c64fb96bb9f866bf6c5a97a0264c49672bd"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Ftcms-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Ftcms-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Ftcms-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiwitcms%2Ftcms-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiwitcms","download_url":"https://codeload.github.com/kiwitcms/tcms-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244545522,"owners_count":20469879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-20T03:36:40.274Z","updated_at":"2025-03-20T03:36:40.861Z","avatar_url":"https://github.com/kiwitcms.png","language":"Python","funding_links":["https://kiwitcms.org/#subscriptions","https://github.com/sponsors/kiwitcms","https://opencollective.com/kiwitcms","https://tidelift.com/funding/github/pypi/kiwitcms","https://tidelift.com/badges/package/pypi/tcms-api","https://tidelift.com/subscription/pkg/pypi-tcms-api?utm_source=pypi-tcms-api\u0026utm_medium=github\u0026utm_campaign=readme"],"categories":[],"sub_categories":[],"readme":"Python API for Kiwi TCMS\n========================\n\n.. image:: https://travis-ci.org/kiwitcms/tcms-api.svg?branch=master\n    :target: https://travis-ci.org/kiwitcms/tcms-api\n\n.. image:: https://ci.appveyor.com/api/projects/status/jhuyyt9vrpaxagrk?svg=true\n    :target: https://ci.appveyor.com/project/atodorov/tcms-api\n\n.. image:: https://readthedocs.org/projects/tcms-api/badge/?version=latest\n    :target: http://tcms-api.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation\n\n.. image:: https://codecov.io/gh/kiwitcms/tcms-api/branch/master/graph/badge.svg\n    :target: https://codecov.io/gh/kiwitcms/tcms-api\n    :alt: Code coverage\n\n.. image:: https://tidelift.com/badges/package/pypi/tcms-api\n    :target: https://tidelift.com/subscription/pkg/pypi-tcms-api?utm_source=pypi-tcms-api\u0026utm_medium=github\u0026utm_campaign=readme\n    :alt: Tidelift\n\n.. image:: https://opencollective.com/kiwitcms/tiers/sponsor/badge.svg?label=sponsors\u0026color=brightgreen\n   :target: https://opencollective.com/kiwitcms#contributors\n   :alt: Become a sponsor\n\n.. image:: https://img.shields.io/twitter/follow/KiwiTCMS.svg\n    :target: https://twitter.com/KiwiTCMS\n    :alt: Kiwi TCMS on Twitter\n\n\nThis package allows to connect and access Kiwi TCMS API.\n\n\nDOCUMENTATION\n-------------\n\nhttps://tcms-api.readthedocs.io/en/latest/modules/tcms_api.html\n\n\nCHANGELOG\n---------\n\nv13.3 (10 Jun 2024)\n~~~~~~~~~~~~~~~~~~~\n\n- Update requirements and imports for the ``strtobool()`` function\n\n\nv13.2 (27 Apr 2024)\n~~~~~~~~~~~~~~~~~~~\n\n- Respect configuration passed as arguments to the ``TCMS()`` class, for example::\n\n    TCMS(\"https://kiwitcms.example.com/xml-rpc/\", \"api-bot\", \"keep-me-secret\")\n\n- Adjust usage examples and documentation for ``.exec()``. Closes\n  `Issue #77 \u003chttps://github.com/kiwitcms/tcms-api/issues/77\u003e`_\n- Internal changes related to testing and building this package\n\n\nv12.9.1 (13 Jan 2024)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Refactor RPC connection refresh using a proxy-class pattern which also\n  takes care to call ``.login()`` upon refresh\n\n\nv12.9 (12 Jan 2024)\n~~~~~~~~~~~~~~~~~~~\n\n- Refresh internal https transport every 4 minutes to avoid an\n  ``ssl.SSLEOFError: EOF occurred in violation of protocol`` error\n  on Python 3.10 and later when executing very long running tests.\n  Limited to non-kerberos connections!\n- Include Python version in ``User-Agent`` header\n- Send XML-RPC method name in ``Referer:`` header to improve logs\n\n\nv12.8.2 (23 Dec 2023)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Refactor calling ``.login()`` method as part of ``__init__`` again\n  because the entire Kiwi TCMS test suite depends on this behavior\n\n\nv12.8.1 (22 Dec 2023)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Limit TestPlan.name and TestCase.summary length before any usage\n  avoiding possible records mismatch between filter \u0026 create operations\n\n\nv12.8 (17 Dec 2023)\n~~~~~~~~~~~~~~~~~~~\n\n- When creating a TestPlan limit name to 255 characters\n- When creating a TestCase limit summary to 255 characters\n\n\nv12.7 (10 Dec 2023)\n~~~~~~~~~~~~~~~~~~~\n\n- Build \u0026 test this package with Python 3.11\n- Replace ``urllib.parse`` functions deprecated since Python 3.8\n- Refactor issues reported by newer version of pylint\n- Refactor issues reported by CodeQL\n- Reformat source code with Black\n- Enable ReadTheDocs CI\n\n\nv12.2 (04 Apr 2023)\n~~~~~~~~~~~~~~~~~~~\n\n- New arguments for ``plugin_helpers.Backend.update_test_execution()`` method.\n  Now accepts the ``start_date`` and ``stop_date`` arguments at the end of its\n  signature\n- Start testing the client library with Python 3.9\n\n\nv11.4 (15 Jul 2022)\n~~~~~~~~~~~~~~~~~~~\n\n- Fallback to C:\\tcms.conf in case we're on Windows\n- [pre-commit.ci] pre-commit autoupdate\n\n\nv11.3 (17 May 2022)\n~~~~~~~~~~~~~~~~~~~\n\n- Make it possible for plugins to print info about created/reused TP/TR\n- Specify start_date when creating a TestRun\n\n\nv11.2 (15 May 2022)\n~~~~~~~~~~~~~~~~~~~\n\n- Make plugin prefix configurable via ``TCMS_PREFIX`` environment variable.\n  Fixes `Issue #6 \u003chttps://github.com/kiwitcms/tcms-api/issues/6\u003e`_\n- Use ``TCMS_PARENT_PLAN`` environment variable if specified. Will configure\n  a parent TestPlan. Fixes\n  `Issue #4 \u003chttps://github.com/kiwitcms/tcms-api/issues/4\u003e`_\n- Introduce ``plugin_helpers.Backend.name`` and\n  ``plugin_helpers.Backend.version`` attributes\n- Convert ``plugin_helpers.Backend.default_tester_id`` into a cached property\n- Use the account sending the API request if ``default_tester_id`` is None.\n  That avoide the use of ``User.filter`` API method for which most users may\n  not be authorized\n- Sanity check and sanitize URL config. Refs\n  `Issue #45 \u003chttps://github.com/kiwitcms/tcms-api/issues/45\u003e`_\n\n\nv11.1 (13 May 2022)\n~~~~~~~~~~~~~~~~~~~\n\n- Allow the environment variable ``TCMS_DEFAULT_TESTER_ID`` to override\n  internal queries, pointing directly to the user who will create new\n  test plans, test runs and update test executions.\n- Internal updates around CI\n\n\nv11.0 (05 Dec 2021)\n~~~~~~~~~~~~~~~~~~~\n\n**WARNING:** contains backwards incompatible changes!\n\n- Method ``plugin_helpers.Backend.add_test_case_to_run()`` now returns a list\n- Adjust internal API calls for upcoming Kiwi TCMS v11.0\n- Still compatible with Kiwi TCMS v10.x API\n- Start using f-strings. Available since Python 3.6 which is the minimum\n  required version for ``tcms-api`` anyway\n\n\nv10.0 (02 March 2021)\n~~~~~~~~~~~~~~~~~~~~~\n\n**WARNING:** contains backwards incompatible changes!\n\n- Compatible with Kiwi TCMS v10.0 or later\n\n\nv9.0 (12 January 2021)\n~~~~~~~~~~~~~~~~~~~~~~\n\n**WARNING:** contains backwards incompatible changes!\n\n- Compatible with Kiwi TCMS v9.0 or later\n- Method ``Backend.build_id()`` doesn't receive ``product_id`` as firsts\n  parameter anymore! Related to Kiwi TCMS\n  `Issue #246 \u003chttps://github.com/kiwitcms/Kiwi/issues/246\u003e`_\n\n\nv8.6.0 (28 October 2020)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Use a sub-package to install gssapi, see installation instructions\n\n\nv8.5.0 (04 August 2020)\n~~~~~~~~~~~~~~~~~~~~~~~\n\n- Fix ``super()`` call in ``CookieTransport`` class to make this package\n  compatible with Python 3.8 (Václav Klikar)\n\n\nv8.4.0 (25 June 2020)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Add instructions how to install ``gssapi`` because they don't ship binary\n  packages on Linux\n- Provide ``plugin_helpers.Backend.get_statuses_by_weight()`` and fall-back\n  to it if TestExecutionStatus can't be found by name. This is to be used\n  by Kiwi TCMS plugins (Bryan Mutai)\n\n\nv8.3.0 (10 April 2020)\n~~~~~~~~~~~~~~~~~~~~~~\n\n- Use ``gssapi`` library for kerberos communications on both Linux and Windows\n- Requires MIT Kerberos for Windows, see installation instructions\n\n\nv8.2.0 (02 April 2020)\n~~~~~~~~~~~~~~~~~~~~~~\n\nThis version adds additional methods and functionality that can be used\nby Kiwi TCMS plugins written in Python.\n\n- Modify ``plugin_helpers.Backend.test_case_get_or_create()`` to return\n  tuple (dict, bool). WARNING: this will break existing plugins\n- ``plugin_helpers.Backend`` will use ``TCMS_PLAN_ID`` environment variable\n  if specified. This allows the user to select an existing TestPlan to save\n  new results into. Fixes\n  `Issue #5 \u003chttps://github.com/kiwitcms/tcms-api/issues/5\u003e`_\n- Add ``plugin_helpers.Backend.finish_test_run()`` which may be\n  called by plugins to indicate that a TestRun has been finished\n- Add ``plugin_helpers.Backend.default_tester_id()`` and update\n  ``TestExecution.tested_by`` when changing status\n- Use ``default_tester_id()`` when creating a new TestRun\n- When creating new test run always set TR.manager := TP.author\n  and make sure that ``TestPlan.create()`` will also specify author\n\n\nv8.1.1 (23 March 2020)\n~~~~~~~~~~~~~~~~~~~~~~\n\n- Use ``winkerberos`` dependency on Microsoft Windows platform\n  (@mtg-edmund-tse)\n- Setting rename in config file: ``use_mod_kerb`` -\u003e ``use_kerberos``\n- Bug-fix: don't fall back to user/pass if kerberos is configured\n- Bug-fix: send correctly formatted authorization request header,\n  per RFC-4459\n- Bug-fix: properly authenticate with Kiwi TCMS via kerberos ticket\n  if requested to do so\n- Start sending ``User-Agent: tcms-api/\u003cversion\u003e`` for all requests\n- Enable integration testing with and without Kerberos\n- Enable testing on Windows\n\n\n\nv8.0.1 (10 February 2020)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis version is compatible only with Kiwi TCMS v8.0 or later!\n\n- Do not use deprecated field ``product`` in ``TestCase.create`` API\n  method\n- Set ``TestCase.is_automated`` to ``True``\n\n\n\nv8.0 (09 February 2020)\n~~~~~~~~~~~~~~~~~~~~~~~\n\nThis version is compatible only with Kiwi TCMS v8.0 or later!\n\n- Adjusts ``plugin_helpers`` module to reflect backwards incompatible\n  API changes introduced in Kiwi TCMS v8.0\n\n\n\nv6.7.1 (07 February 2020)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Fix a bug in how ``use_mod_kerb`` setting was evaluated which\n  lead to always preferring Kerberos which in turn was causing\n  issues on Windows.\n\n\n\nv6.7 (10 April 2019)\n~~~~~~~~~~~~~~~~~~~~\n\nThis version is compatible only with Kiwi TCMS v6.7 or later!\nFor older server versions use tcms-api==5.3!\n\nThis version contains breaking changes in ``plugin_helpers``!\n\n- Switch from ``TestCaseRun`` to ``TestExecution`` API. Fixes\n  `Issue #7 \u003chttps://github.com/kiwitcms/tcms-api/issues/7\u003e`_\n- Rename ``plugin_helpers.Backend.update_test_case_run()`` to\n  ``plugin_helpers.Backend.update_test_execution()``\n\n\n\nCOPYRIGHT\n---------\n\n- Copyright (c) 2012 Red Hat, Inc. All rights reserved.\n- Copyright (c) 2017-2023 Kiwi TCMS Project and its contributors. All rights reserved.\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwitcms%2Ftcms-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiwitcms%2Ftcms-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiwitcms%2Ftcms-api/lists"}