We're happy to announce Kiwi TCMS version 5.3.1! This release brings lots of UI updates and removal of unused and/or duplicated functionality and source code. Many pages have been redesigned with the Patternfly library to have a modern look and feel which you can experience at https://public.tenant.kiwitcms.org.
This will be the last release to carry around squashed migrations. In version 6.0 older migrations will be deleted and replaced with their squashed equivalents. Upgrades from versions < 5.3 to 6.0 will break without an intermediate upgrade to 5.3.1!
Use pub.kiwitcms.eu/kiwitcms/kiwi:5.3.1 from Docker Hub when upgrading at some point in the future!
Docker images:
pub.kiwitcms.eu/kiwitcms/kiwi 5.3.1 a420465852be 976.8 MB pub.kiwitcms.eu/kiwitcms/kiwi latest a420465852be 976.8 MB
If you are using Kiwi TCMS as a Docker container then:
cd Kiwi/ git pull docker-compose down docker pull pub.kiwitcms.eu/kiwitcms/kiwi docker pull centos/mariadb docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate
Don't forget to backup before upgrade!
Kiwi TCMS is now using the 'kiwi-tcms' tag on StackOverflow to track questions. Please submit your support requests and general questions to StackOverflow tagged with the 'kiwi-tcms' tag! Support requests via GitHub or email will not be answered anymore (GitHub issues are for bugs or feature discussions only)!
We are planning to convert https://public.tenant.kiwitcms.org into a subscription based service for people who don't want to bother installing Kiwi TCMS on their own systems and just want to use it for test collaboration with their team.
The income from this service will go towards covering operating costs and supporting the development team. Watch this blog for further announcements about this. Meanwhile you may share your thoughts via Issue #515.
TestRun.product_version will be removed from the database schema in favor of TestRun.plan.product_version! With the latest web interface it is not possible to select a product version different than the one selected in the Test Plan. Test runs should only be able to select product builds (after Issue #246 is fixed).
TestRun.estimated_time is scheduled for removal if not used. Objections and use-cases must be shared via Issue #514.
EnvGroup and EnvProperty models are scheduled for removal in favor of Tag. Internally tags are referenced in more places inside Kiwi TCMS' source code and they appear to be more fully developed. On the other hand while environment appears very similar to tags it is not exactly the same. Ongoing discussion is happening via Issue #484.
We're happy to announce Kiwi TCMS version 5.2! This release introduces new database migrations and converts the Docker image to a non-root user with uid 1001. You may have to adjust ownership/permissions on the kiwi_uploads Docker volume!
The new pub.kiwitcms.eu/kiwitcms/kiwi:latest docker image has Image ID 6bc4e3124fd4. https://public.tenant.kiwitcms.org has also been updated!
If you are using Kiwi TCMS as a Docker container then:
cd Kiwi/ git pull docker-compose down docker pull pub.kiwitcms.eu/kiwitcms/kiwi docker pull centos/mariadb docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate
Don't forget to backup before upgrade!
We're happy to announce Kiwi TCMS version 5.1! This release introduces new database migrations, an experimental reporting feature, deprecated functionality and bug fixes.
The new pub.kiwitcms.eu/kiwitcms/kiwi:latest docker image has Image ID cc9b55aa664d. https://public.tenant.kiwitcms.org has also been updated!
If you are using Kiwi TCMS as a Docker container then:
cd Kiwi/ git pull docker-compose down docker pull pub.kiwitcms.eu/kiwitcms/kiwi docker pull centos/mariadb docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate
Don't forget to backup before upgrade!
According to our 2018 roadmap update the Kiwi TCMS team is investing a great deal of our time to make the code base more maintainable! For the past few releases we've been balancing code refactoring with bug-fixing and enhancements and we have lots of ideas down the line.
We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. We want to know what works for you and what doesn't so we can make it better. Feel free to comment below, file GitHub issues or send us an email.
Happy testing!
We're happy to announce Kiwi TCMS and tcms-api version 5.0! This release introduces object history tracking, removal of old functionality and unused code, lots of internal updates and bug fixes.
The new pub.kiwitcms.eu/kiwitcms/kiwi:latest docker image has Image ID 468de0abe8a8. https://public.tenant.kiwitcms.org has also been updated!
If you are using Kiwi TCMS as a Docker container then:
cd Kiwi/ git pull docker-compose down docker pull pub.kiwitcms.eu/kiwitcms/kiwi docker pull centos/mariadb docker-compose up -d docker exec -it kiwi_web /Kiwi/manage.py migrate docker exec -it kiwi_web /Kiwi/manage.py populate_history --auto
According to our 2018 roadmap the Kiwi TCMS team is investing a great deal of our time to make the code base more maintainable! For the past few releases we've been balancing code refactoring with bug-fixing and minor enhancements and we have lots of ideas down the line.
We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. We want to know what works for you and what doesn't so we can make it better. Feel free to comment below, file GitHub issues or send us an email.
Happy testing!
We're happy to announce Kiwi TCMS and tcms-api version 4.2!
This is a security, bug-fix and enhancement update which upgrades to the latest
Django version under Python 3.6.
We've pushed new pub.kiwitcms.eu/kiwitcms/kiwi
container image and updated the
demo instance at https://public.tenant.kiwitcms.org!
This version also includes GDPR related changes which affect our project. Read below for the details.
IMPORTANT: this release introduces new database migrations
secrets
module for activation keysBUGZILLA_AUTH_CACHE_DIR
is a new setting that may be specified to control
where Bugzilla auth cookies are saved! It is not specified by default and
Kiwi TCMS uses a temporary directory each time we try to login into Bugzilla!Last login
column in User admin pagetcms.management.views
(Anton Sankov)templates/comments/comments.html
product_version
. Fixes
Sentry KIWI-TCMS-1Cget_url()
to get_full_url()
. Fixes
Sentry KIWI-TCMS-1Bgit clone
command to documentation. Fixes
Issue #344 (Anton Sankov)activation_key
field size to 64 charsMy profile
page.
This will also delete any related objects using cascade deleteIn addition the following changes were deployed to our infrastructure:
Subscribe to our newsletter
is now a link, instead of
embedded form because embedded forms can't display GDPR compliance fields.
If you wish to receive email from Kiwi TCMS you need to select the Email
checkbox when signing up for the newsletter.We're trying to be respectful to your private data and not expose that to any 3rd parties or use it for means other than making Kiwi TCMS better open source software. If you spot areas for improvement please report an issue so we can take a look at it!
https://
URLs (Adam Ćoszyn, Samsung)If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
git pull
docker-compose down
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
docker pull centos/mariadb
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
According to our 2018 roadmap the Kiwi TCMS team is investing a great deal of our time to make the code base more maintainable! For the past few releases we've been balancing code refactoring with bug-fixing and minor enhancements and we have lots of ideas down the line.
We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. We want to know what works for you and what doesn't so we can make it better. Feel free to comment below, file GitHub issues or send us an email.
Happy testing!
Kiwi TCMS is going on a small conference tour. This is where you can find us in the next couple of months:
For all of the 3 conferences we're going to have a project presence. In addition to that you can catch-up with Alex Todorov, Kiwi's project lead at: TestCon Moscow(17-19 April, Moscow), Romanian Testing Conference(9-11 May, Cluj-Napoca), PyCon CZ(1-3 June, Prague) and DEVit(10-11 June, Thessaloniki).
If you can ping us at @KiwiTCMS or look for the kiwi bird logo and come to say hi!
We're happy to announce Kiwi TCMS version 4.1.4! This is a bug-fix and enhancement update which upgrades to the latest Django version, resolves several issues and includes lots of internal code updates.
We've pushed new pub.kiwitcms.eu/kiwitcms/kiwi
container image and updated the
demo instance at
https://public.tenant.kiwitcms.org!
BREAKING CHANGES:
user_registered
to USER_REGISTERED_SIGNAL
and
post_update
to POST_UPDATE_SIGNAL
!UrlMixin
. Fixes
Issue #157 (Chenxiong Qi)split_as_option
template tagtcms/core/ajax.py
tcms/core/forms/widgets.py
case/form/filter.html
into plan/get_cases.html
TestCaseStatus.id_to_string()
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
git pull
docker-compose down
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
docker pull centos/mariadb
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
According to our 2018 roadmap the Kiwi TCMS team is investing a great deal of our time to make the code base more maintainable! For the past few releases we've been balancing code refactoring with bug-fixing and minor enhancements and we have lots of ideas down the line.
We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. We want to know what works for you and what doesn't so we can make it better. Feel free to comment below, file GitHub issues or send us an email.
Happy testing!
We're happy to announce Kiwi TCMS version 4.1.3! This is a bug-fix and enhancement update which upgrades to the latest Django version, provides easier way for Docker administrators to override SSL certificates and access httpd log files and resolves several issues. This release also includes lots of internal code refactoring which removes code duplication and brings down CodeClimate metrics to 26.9% of technical debt or 10 months to fix.
We've pushed the new pub.kiwitcms.eu/kiwitcms/kiwi
container image and updated the
demo instance at
https://public.tenant.kiwitcms.org.
Starting forward the demo will use
the info-at-kiwitcms.org
email address for all communication sent. There are real
people behind this address so if you write to us we will reply!
date_joined
column for user adminescape
and escapejs
filters. Fixes
Issue #234delete_selected
action in Admin, this removes the
drop down selection widget! Fixes
Issue #221from_plan
is empty string. Fixes
Sentry KIWI-TCMS-ZCaseActions
. Fixes
Issue #21 (Chenxiong Qi)get_cases.html
template. Fixes
Issue #176get_details_review.html
and get_details.html
templatesPrompt.render
class and replace with Django messagesmail/delete_plan.txt
templatehandle_emails_pre_plan_delete
signal handlerExport
button from TestPlan view, use Case->Export sub-menu
item in the Cases tab. Also remove the export buttons from search and advanced
search result templates. If you'd like to export the cases from a given
plan you have to open it in a new browser window and use the menuPrint
button from plan search formEnvGroup
edit viewPLAN_DELELE_EMAIL_TEMPLATE
setting (not used)DurationField
, instead of custom one. Fixes
Issue #183API clients must now send values for estimated_time
which must be in a
format that parse_duration()
understands, for example 'DD HH:MM:SS'! See
https://docs.djangoproject.com/en/2.0/ref/utils/#django.utils.dateparse.parse_duration
IMPORTANT: this release introduces new database migrations!
There are new translatable strings introduced with this release! At this moment translating Kiwi TCMS in languages other than English is purely a community effort. If you'd like to help consult our translations contribution page.
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
git pull
docker-compose down
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
docker pull centos/mariadb
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
According to our 2018 roadmap the Kiwi TCMS team is investing a great deal of our time to make the code base more maintainable! For the past few releases we've been balancing code refactoring with bug-fixing and minor enhancements and we have lots of ideas down the line.
We want to hear your voice! Tell us how you use Kiwi TCMS inside your organization. We want to know what works for you and what doesn't so we can make it better. Feel free to comment below, file GitHub issues or send us an email.
Happy testing!
We're happy to announce Kiwi TCMS version 4.1.0! This is a bug-fix and enhancement update centered around providing more flexibility for administrators to configure the user approval process. Refer to the documentation for more information about signals handling in Kiwi TCMS.
tcms.core.ajax.tag
(Anton Sankov)tcms.core.ajax.tag
(Anton Sankov)tcms.core.ajax.tag
to work with only one object. Fixes
Issue #135 (Anton Sankov)user_registered
signal when new users are registeredis_superuser
column to User admin. Fixes
Issue #206post_save
signalEmailBackend
authentication backendtcms.core.models.signals
moduletcms.signals
django_messages
during account registrationLISTENING_MODEL_SIGNAL
(internal setting)AUTO_APPROVE_NEW_USERS
. Fixes
Issue #203Product
model:
disallow_new
, max_vote_super_bug
, vote_super_user
,
field votes_to_confirm
, default_milestone
, milestone_url
Milestone
modelIMPORTANT: this release introduces new database migrations!
There are new translatable strings introduced with this release, including translations of a few email templates! At this moment translating Kiwi TCMS in languages other than English is purely a community effort. If you'd like to help consult our translations contribution page.
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
docker-compose down
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Happy testing!
We're happy to announce Kiwi TCMS version 4.0.0 and the corresponding tcms-api version 4.0.0! This is a very big release which introduces tons of backwards incompatible changes to the RPC layer as well as several bug-fixes and enhancements!
With this release Kiwi TCMS meets one of our milestones for 2018! All XML-RPC namespaces now match DB model names and the API client class names. Lots of similar and duplicate methods were removed and existing ones were simplified. We've also reduced code duplication and technical debth by 1 month according to stats by CodeClimate.
IMPORTANT: this is also the first release to officially publish the
pub.kiwitcms.eu/kiwitcms/kiwi
container image!
WARNING: upgrading to Kiwi TCMS 4.0.0 means you will have to upgrade the tcms-api client as well. None of the 4.x releases is compatible with older releases due to the massive ammount of changes in the RPC layer.
ADMIN_PREFIX
settingBuild.check_build
, use Build.filter
Build.get
, use Build.filter
Build.get_caseruns
, use TestCaseRun.filter
Remove Build.get_runs
, use TestRun.filter
Rename Env.filter_groups
, use Env.Group.filter
Env.filter_properties
, use Env.Property.filter
Rename Env.filter_values
, use Env.Value.filter
Remove Product.add_component
, use Component.create
Product.add_version
, use Version.create
Product.check_category
, use Category.filter
Product.check_component
, use Component.filter
Product.check_product
, use Product.filter
Product.filter_categories
, use Category.filter
Product.filter_components
, use Component.filter
Product.filter_versions
, use Version.filter
Product.get
, use Product.filter
Product.get_builds
, use Build.filter
Product.get_cases
, use TestCase.filter
Product.get_categories
, use Category.filter
Product.get_category
, use Category.filter
Product.get_component
, use Component.filter
Remove Product.update_component
, use Component.update
Rename Tag.get_tags
to Tag.filter
Remove TestCase.add_comment
TestCase.add_component
TestCase.add_tag
TestCase.add_to_run
, use TestRun.add_case
TestCase.attach_bug
, use Bug.create
TestCase.calculate_average_estimated_time
TestCase.calculate_total_estimated_time
TestCase.check_case_status
, use TestCaseStatus.filter
TestCase.check_priority
, use Priority.filter
TestCase.create
, no longer accepts plan
,
component
and bug
dict attributes. Instead use
TestPlan.add_case
, TestCase.add_component
and Bug.create
TestCase.detach_bug
, use Bug.remove
TestCase.filter_count
TestCase.get
, use TestCase.filter
TestCase.get_bugs
, use Bug.filter({'case': ?})
TestCase.get_bug_systems
TestCase.get_case_status
, use TestCaseStatus.filter
TestCase.get_components
TestCase.get_plans
, use TestPlan.filter({'case': ?})
TestCase.get_priority
, use Priority.filter
TestCase.get_tags
, use Tag.filter({'case': ?})
TestCase.get_text
, use TestCase.filter
TestCase.link_plan
, use TestPlan.add_case
TestCase.notification_add_cc
to TestCase.add_notification_cc
and update signatureTestCase.notification_get_cc_list
to TestCase.get_notification_cc
and update signatureTestCase.notification_remove_cc
to TestCase.remove_notification_cc
and update signatureTestCase.remove_component
TestCase.remove_tag
TestCase.store_text
, use TestCase.update
with
setup
, breakdown
, action
and effect
attributes in the parameter dictRemove TestCase.unlink_plan
, use TestPlan.remove_case
Remove TestCasePlan.get
Remove TestCasePlan.update
Update TestCaseRun.add_comment
to accept a single ID as first parameter
TestCaseRun.attach_bug
, use Bug.create
TestCaseRun.attach_log
to TestCaseRun.add_log
TestCaseRun.detach_bug
, use Bug.remove
TestCaseRun.detach_log
to TestCaseRun.remove_log
TestCaseRun.get
, use TestCaseRun.filter
TestCaseRun.get_bugs
, use Bug.filter({'case_run': ?})
TestCaseRun.get_case_run_status_by_name
Update signature for TestCaseRun.update
Remove TestPlan.add_component
TestPlan.add_tag
TestPlan.check_plan_type
, use PlanType.filter
TestPlan.filter_count
TestPlan.get
, use TestPlan.filter
TestPlan.get_all_cases_tags
TestPlan.get_components
TestPlan.get_env_groups
, use Env.Group.filter({'testplan': ?})
TestPlan.get_plan_type
, use PlanType.filter
TestPlan.get_product
, use Product.filter({'plan': ?})
TestPlan.get_tags
, use Tag.filter({'plan': ?})
TestPlan.get_test_cases
, use TestCase.filter({'plan': ?})
TestPlan.get_test_runs
, use TestRun.filter({'plan': ?})
TestPlan.get_text
, use TestPlan.filter
TestPlan.link_env_value
to TestPlan.add_env_value
and update signatureTestPlan.remove_component
TestPlan.remove_tag
TestPlan.store_text
, use TestPlan.update
with
a text
attribute in the parameter valuesRename TestPlan.unlink_env_value
to TestPlan.remove_env_value
and update signature
Rename TestRun.add_cases
to TestRun.add_case
and update signature
TestRun.add_tag
TestRun.create
, no longer accepts case
dict attribute. Instead use TestRun.add_case
TestRun.filter_count
TestRun.get
, use TestRun.filter
TestRun.get_bugs
TestRun.get_env_values
, use Env.Value.filter({'testrun': ?})
TestRun.get_tags
, use Tag.filter({'run': ?})
TestRun.get_test_cases
to TestRun.get_cases
TestRun.get_test_case_runs
, use TestCaseRun.filter({'run': ?})
TestRun.get_test_plan
, use TestPlan.filter({'run': ?})[0]
TestRun.remove_cases
to TestRun.remove_case
and update signatureTestRun.remove_tag
Update signature for TestRun.update
Rename User.get
to User.filter
User.join
to User.join_group
User.update
TestEnvironment
TestEnvironmentCategory
TestEnvironmentElement
TestEnvironmentMap
TestEnvironmentProperty
TestPlanComponent
TestPlan.get_text_with_version()
TestRun.get_previous_or_next()
IMPORTANT: this release introduces new database migrations!
Status
to TestCaseRunStatus
CaseRun
to TestCaseRun
PlanStatus
, use TestPlan.is_active
RunStatus
, use TestRun.finished
TestPlan.components
containerTestPlan
. Now accept text
kwarg in constructor
instead of document
.If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
docker-compose down
docker pull pub.kiwitcms.eu/kiwitcms/kiwi
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Happy testing!
We're happy to announce Kiwi TCMS version 3.50 and the corresponding tcms-api version 1.5.1! This is a bug-fix and enhancement release and we advise you to upgrade as soon as possible!
IMPORTANT: this release introduces new database migrations!
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
docker-compose down
make docker-image
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Happy testing!
Hello everyone. As you know Kiwi TCMS has been around for a while and it has gone through some big changes in the last year! It started as an abandoned Django 1.6 project with broken test suite and is now currently running on the latest Django 2.0.1 with Python 3.5! It is clearly a legacy code base!
We, the Kiwi TCMS team, have learned a lot more about the project and this blog post describes our roadmap for 2018 in terms of technical work and community engagement. The general technical direction is cleaner/simpler code, improved UI/UX and more tests!
The current code is a bunch of very large modules and functions and classes bundled together. It is also old and sometimes looks like spaghetti code. CodeClimate gives us a "D" rating for maintainability with a 1 year estimated effort to fix that. There are 600+ code smells and 600+ duplications detected by CodeClimate. Our goal is to get this number down to zero!
pylint is the standard static analyzer for Python and currently it reports over 4000 errors and warnings when executed against Kiwi TCMS. This is a huge number and it needs to become zero! We've also identified interesting patterns that will make it into pylint and pylint-django plugins!
The current state of affairs is a mix and match of everything. There are views that render HTML, others which return pure JSON, other which return HTML encoded as JSON string and probably everything in between. Views that render pages need to do just that and views that are used with AJAX calls from the UI need to return pure JSON! A lot of these are hiding in plain sight and will come to light when we start overhauling the user interface.
There are lots of forms in Kiwi TCMS. Sometimes they are submitted by the user and other times they are serialized and POSTed by some JavaScript code. This isn't very easy to understand plus this entire home-grown utility code doesn't bring anything useful to the project. All of these need to be identified and cleaned up. JavaScript code needs to send or consume JSON, nothing else!
There are also lots of places where Kiwi issues GET requests with a number of query parameters. Our goal is to minimize these and where possible have the parameters as part of the Django urls scheme, not as query strings.
The current API module is a bit disorganized. API namespaces don't match the names of the underlying DB models and the API client classes don't match any of the other two! The way we pass parameters and what these parameters are named should match between the client, the RPC method and the underlying model!
In earlier releases we've removed duplicate or similar RPC methods and we think there are more of these that need our love.
We've started producing documentation from doc-strings and most of the RPC methods have such. However it is unformatted and barely readable, sometimes even inaccurate. Previous releases made progress on this but there's a lot more to cover.
All RPC methods should be documented first and then the rest of Kiwi's internals to make development easier!
There are 11 vendored-in JavaScript files that we carry around in Kiwi TCMS. Most notable are jQuery plus a few addons and Handlebars.js. To the extent possible our goal is to use jQuery provided by Django or installed via NPM dependencies!
There are over 100 HTML templates in Kiwi TCMS. There are also email and even
JavaScript templates. For example there are get_cases.html
and get_review_cases.html
which are essentially the same. This is kind of also true for templates used in
new and edit views! Such templates should be unified!
Those JavaScript templates need to be totally gone!
All templates are stuffed together in a single directory and their names are not very predictable. They need to be split per application and follow some kind of naming convention.
The UI already uses the Patternfly library for some of its widgets. Most notably the main navigation header. Our goal is for the entire UI to be ported to Patternfly by updating widgets HTML and CSS where needed. This will also help clean things up a lot. At the same time we'll be rethinking how information is organized on screen and how the person interacts with it! Usability suggestions are very welcome!
This move will also help us get rid of the Handlebars dependency which is now used for pop-up dialogs.
There's lots of JavaScript code on the front-end and honestly we don't quite know what it does or how it is organized. There are also no tests on the front-end whatsoever!
It is our goal for this to change with the intention to not overdo the JavaScript part and keep things very minimal. At the moment we're thinking about vanilla jQuery that will act as a proxy between the browser and the back-end!
A year ago hardly anybody knew what Kiwi TCMS was, the project didn't even have this name, there was 1 active contributor and hardly any users! Now the community has started to slowly revitalize, we're seeing some contributions from our junior team members (more on this in another blog post) and also seeing folks installing and using Kiwi TCMS and reporting interesting bugs and feature requests around it!
For the upcoming year our goal is to seek active engagement with other open source projects that could make use of Kiwi TCMS and work with them. Kudos to openSUSE for being the first to propose such integration! We're also planning couple of appearances at a few conferences but there's nothing confirmed yet.
Every other contribution in terms of bug reports, new users and feature requests is of course welcome but we're very conscious of the fact that there's tons of work to be done and the team is still very small!
Team wise we'd like to get the existing team members up to speed and tackle the above tasks with priority. This will also help us introduce bug fixes and new features more quickly!
Happy testing!
Happy New Year to everyone. We're happy to announce Kiwi TCMS version 3.49 and the corresponding tcms-api version 1.5.0! This release includes a fair amount of bug fixes and many changes related to Kiwi's RPC layer!
Most importantly Kiwi is updated to Django 2.0.1, the API client no longer supports Python 2 and many RPC methods have been removed or updated. https://public.tenant.kiwitcms.org has also been updated so you can explore the new version.
TCMSEnvValue
records by property name and value. Fixes
Issue #155NOTE: Since django-attachments introduces new permission objects
you will have to adjust default permissions for existing users!
In order for them to be able to upload/delete their own files they
need to have attachments.add_attachment
and atachments.delete_attachment
permissions.
These same permissions are added by default to the 'Tester' group. If you are running an existing installation registering a new user with Kiwi TCMS will update the default permissions for this group!
manage.py test
and drop py.test dependencyTestTag.string_to_list
method. Fixes
Issue #106settings.AUTH_USER_MODEL
in ForeignKey definitions. Fixes
Issue #143EMAIL_FROM
to DEFAULT_FROM_EMAIL
. Fixes
Issue #128FILE_UPLOAD_DIR
to MEDIA_ROOT
MAX_UPLOAD_SIZE
to FILE_UPLOAD_MAX_SIZE
DELETE_ATTACHMENTS_FROM_DISK
XMLRPC_TEMPLATE
and TESTOPIA_XML_VERSION
django-modern-rpc
and remove home-grown XML-RPC handling code.
As part of this change the XML-RPC endpoint has been changed to /xml-rpc/
.
There's also a new JSON-RPC endpoint at /json-rpc/
!Auth.login
method now accepts positional parameters username, password
instead of dictTestCaseRun.get
method now accepts a query dict as parameterTestCaseRun.get_bugs
method now accepts a query dict as parameterBuild.lookup_id_by_name
, Build.lookup_name_by_id
RPC methodsProduct.lookup_name_by_id
, Product.lookup_id_by_name
RPC methodsProduct.get_components
, use Product.filter_components
insteadProduct.get_plans
, use TestPlan.filter
insteadProduct.get_runs
, use TestRun.filter
insteadProduct.get_tag
, use Tag.get_tags
insteadProduct.get_versions
, use Product.filter_versions
insteadTestCaseRun.filter_count
, use TestCaseRun.filter
insteadTestCaseRun.get_s
, use TestCaseRun.get
insteadTestCaseRun.get_bugs_s
, use TestCaseRun.get_bugs
insteadTestCaseRun.get_case_run_status
, use
TestCaseRun.get_case_run_status_by_name
insteadTestCaseRun.get_completion_time
, TestCaseRun.get_completion_time_s
RPC methods. Instead calculate them on the client sideTestCaseRun.check_case_run_status
to TestCaseRun.get_case_run_status_by_name
TestCaseRun.detach_log
will not raise exceptions when deleting logs from
non-existing TestCaseRun objects.User.get_me
, instead use User.get
without parametersVersion.
and Testopia.
RPC modulesAuth
, Build
and Env
namespaces.
Unformatted documentation is also available for the rest of the RPC methodsdo_command
method which eliminates use of eval()
TCMSXmlrpc.get_me()
and TCMSXmlrpc.build_get()
methodsIMPORTANT: this release introduces new database migrations!
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
docker-compose down
make docker-image
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Happy testing!
We are happy to announce the first official release of the tcms-api package! This is a Python client for Kiwi TCMS.
There are couple of main distinctions in this module:
For more information you should check-out the documentation
and the script_examples/
directory.
At the moment the API client is both Python2 and Python3 compatible, however it is tested only under Python3!
The original API client, like Kiwi TCMS itself began its origin under a different name and was created primarily by Petr Splichal. Since then Kiwi TCMS has evolved and we've decided that the API module needs to evolve as well. At the moment the tcms-api module is a bit rough around the edges, its documentation is not really the best one and it's currently advisable to spend some time reading the code to figure out how everything works.
We're going to improve on all of these areas and we need help from the community
to do so! Please download the tcms-api
module, check it out, write and contribute
example scripts (you can use the demo site for this), send us bug reports, suggestions
and pull requests!
Happy testing!
We're proud to announce Kiwi TCMS version 3.48! This is the first release to be announced on our blog and it is also an important one!
Kiwi TCMS 3.48 introduces new versions of Django and Patternfly, a Python API client library, many bug-fixes and updated documentation.
tcms_api/script_examples/
for examples how to use it.CACHE_NONE
if not set. (Mr. Senko)IMPORTANT: this release introduces new database migrations!
NOTE: the API client has been initially developed as the python-nitrate project by Petr Splichal and other contributors! We've decided to fork their code base into Kiwi's repository and continue further development in a central place. This makes it easier testing the API server and client together and allows us to move more rapidly!
As of now there isn't a lot of documentation and examples on how to use the API client but we are looking to improve this. Additional documentation and examples will be published in the project's repository or on this blog!
If you are using Kiwi TCMS as a Docker container then
cd Kiwi/
docker-compose down
make docker-image
docker-compose up -d
docker exec -it kiwi_web /Kiwi/manage.py migrate
Happy testing!
Welcome to the official website and blog of Kiwi TCMS. We are happy to finally be online!
This website was built with the help of Kaloyan Krastev, Tsvetoslav Garkov and Ivaylo Ivanov who will be joining the project a bit later as well.
In this blog you can expect various news and progress reports around the project, announcement of new releases and future plans. We would love to hear your feedback so please use the comments form below.
Happy testing!
Page 8 / 8