Kiwi TCMS 6.5

improvements and bug fixes, automation plugins

Posted by Kiwi TCMS Team on Fri 01 February 2019 under releases

We're happy to announce Kiwi TCMS version 6.5! This is a minor security, improvement and bug-fix update that includes new versions of Django and other dependencies, removes some database fields, includes backend API updates and fixes several bugs. You can explore everything at!

Together with this release we announce:

Both of these are implemented in Python and should work on standard TAP and junit.xml files generated by various tools!

Additionally 3 more plugins are currently under development by contributors:

Supported upgrade paths:

5.3   (or older) -> 5.3.1
5.3.1 (or newer) -> 6.0.1
6.0.1            -> 6.1
6.1              -> 6.1.1
6.1.1            -> 6.2 (or newer)

Docker images:

kiwitcms/kiwi       latest  7ca4fda602fc    1.002 GB
kiwitcms/kiwi       6.2     7870085ad415    957.6 MB
kiwitcms/kiwi       6.1.1   49fa42ddfe4d    955.7 MB
kiwitcms/kiwi       6.1     b559123d25b0    970.2 MB
kiwitcms/kiwi       6.0.1   87b24d94197d    970.1 MB
kiwitcms/kiwi       5.3.1   a420465852be    976.8 MB

Changes since Kiwi TCMS 6.4


  • Better override of SimpleMDE markdown rendering to prevent XSS vulnerabilities in SimpleMDE


  • Update patternfly to version 3.59.1
  • Update bleach from 3.0.2 to 3.1.0
  • Update django-vinaigrette from 1.1.1 to 1.2.0
  • Update django-simple-history from 2.6.0 to 2.7.0
  • Update django-grappelli from 2.12.1 to 2.12.2
  • Update mysqlclient from 1.3.14 to 1.4.1
  • Update psycopg2 from to 2.7.7
  • Update pygithub from 1.43.4 to 1.43.5
  • Convert TestCase page to Patternfly
    • page menu is under ... in navigation bar
    • Test plans card is missing the old 'add plan' functionality b/c we are not at all sure if adding plans to test cases is used at all. Can bring it back upon user request!
    • Bugs card is missing the add/remove functionality for b/c we are not quite sure how that functionality is used outside test runs!
  • Convert new TestCase page to Patternfly and provide Given-When-Then text template. This prompts the author to use a BDD style definition for their scenarios. We believe this puts the tester into a frame of mind more suitable for expressing what needs to be tested
  • Add a favicon. Fixes Issue #532
  • Sort Component, Product and Version objects alphabetically. Fixes Issue #633
  • Search test case page now shows Components and Tags
  • Search test case page now allows filtering by date. Fixes Issue #715
  • Search test case page now uses radio buttons to filter by automation status
  • Small performance improvement when searching test plans and test cases
  • Search test run page now allows to filter by Product but still continue to display all Builds in the selected Product
  • Updated doc-string formatting for some tcms modules

Database migrations

Known issues: on our demo installation we have observed that permission labels were skewed after applying migrations. The symptom is that labels for removed models are still available, labels for some models may have been removed from groups/users or there could be permission labels appearing twice in the database.

This may affect only existing installations, new installations do not have this problem!

We are not certain what caused this but a quick fix is to remove all permissions from the default Tester group and re-add them again!

  • Remove TestCase.alias
  • Remove TestCaseRun.running_date
  • Remove TestCaseRun.notes
  • Remove TestCase.is_automated_proposed
  • Remove TestCaseText model, merge into TestCase.text field. Closes Issue #198
  • Remove Priority.sortkey
  • Remove Build.description
  • Remove Classification.sortkey and Classification.description
  • Convert TestCase.is_automated from int to bool
  • Rename TestCaseRun.case_run_status to status


  • New method TestCaseRunStatus.filter()
  • New method Product.create()
  • New method Classification.filter()
  • New method BugSystem.filter()
  • Changes to TestCase.add_component():
    • now accepts component name instead of id
    • now fails if trying to add components linked to another Product.
    • now returns serialized TestCase object


Bug fixes

  • Fix for missing migrations from django-simple-history, see DSH #512 and StackOverflow #54177838
  • Fix cloning of test cases by surrounding bootstrap-selectpicker call with try-catch. Fixes Issue #695
  • Fix a traceback with TestRun report page when the RPC connection to Bugzilla can't be established


  • Remove unused form classes, methods, fields and label attributes
  • Remove unused or duplicate methods from TestCase model
  • Remove useless methods from BaseCaseForm()
  • Add test for discovering missing migrations
  • Add test for sanity checking PyPI packages which will always build tarball and wheel packages

tcms-api 5.2 (30 Jan 2019)

  • Add plugin_helpers.Backend which implements our test runner plugin specification in Python
  • Add dependency to kerberos (Aniello Barletta)

How to upgrade

If you are using Kiwi TCMS as a Docker container then:

cd Kiwi/
git pull
docker-compose down
docker pull kiwitcms/kiwi
docker pull centos/mariadb
docker-compose up -d
docker exec -it kiwi_web /Kiwi/ migrate

Don't forget to backup before upgrade!

WARNING: kiwitcms/kiwi:latest and docker-compose.yml will always point to the latest available version! If you have to upgrade in steps, e.g. between several intermediate releases, you have to modify the above workflow:

# starting from an older Kiwi TCMS version
docker-compose down
docker pull kiwitcms/kiwi:<next_upgrade_version>
edit docker-compose.yml to use kiwitcms/kiwi:<next_upgrade_version>
docker-compose up -d
docker exec -it kiwi_web /Kiwi/ migrate
# repeat until you have reached latest

Happy testing!