kiwitcms / kiwi Goto Github PK
View Code? Open in Web Editor NEWopen source test management system with over 2 million downloads!
Home Page: https://kiwitcms.org
License: GNU General Public License v2.0
open source test management system with over 2 million downloads!
Home Page: https://kiwitcms.org
License: GNU General Public License v2.0
Filed from caserun http://127.0.0.1:8000/run/6/
Product:
KIWI
Component(s):
[]
Version-Release number of selected component (if applicable):
3.24-rc1
Steps to Reproduce:
this is my case setup
first action
second action
Actual results:
Expected results:
Once jazzband/django-tinymce#220 is merged and distributed on PyPI we have to upgrade to the latest tinymce version before we can safely migrate to Django 2.1.
In tcms.search.forms
there are some "template-functions" which return django form field instances. ATM it is not clear why we need them but IMO they can be removed and instead we can declare form fields directly.
In Nitrate it was really nice that one could really easy set test execution status and and comment. For some reason, I didn't find it in Kiwi Demo. See screenshot
Web
Demo
Always
No possibility to set status and\or add comment in one click
One-click setting of Status and adding comment should be possible
Looks like regression
Some dependencies are not required. For example most installation don't use Kerberos, smaller installations may not need Celery.
KTP needs to remove them from the default installation and provide an easy way to configure them if they are required.
For example when searching Test Runs there are 2 different templates used to display the results.
An ordinary search POSTs to an ajax view which returns JSON including HTML string via templates/run/common/json_runs.txt
and the other uses an HTML template in templates/run/common/run_advance_filtered.html
. This is the same for all search methods.
We should unify those because that makes adjusting the result columns or pagination easier.
On a related note we have to evaluate exactly how much more flexible Advanced search is compared to the other search views! I have the feeling that there isn't much of a difference and the Advanced search code seems to me unnecessarily complicated.
On this note there should probably be a single search class implementing the common search interface and then inherited versions adding specifics for Test Plans, Test Cases and Test Runs!
The templates themselves should be migrated to Patterfly once we have one or two of them left.
Related views returning JSON should return pure data, not strings containing HTML.
This is also related to #104
Both templates share similar properties and they can probably be merged into a single template to reduce layout duplication.
Also IMO it is best to move templates under their respective app directories instead of having all of them under one single directory.
the default testing report page fails with error:
Error page
Report is shown
It looks like this class is used to filter, sort and paginate data coming from a QuerySet and prepare it for display on the client side using jQuery DataTables. ATM I'm not clear what the purpose of this class is and why it exists. I have the feeling that all of its operations can be easily performed by the QuerySet.
Consider removing the usage of this class and possibly return JSON from the views that make use of it. Then feed the JSON into a Patternfly data grid widget and also get rid of the jQuery DataTables.
Steps
Create a product and associated versions, ensure there is only one product.
PLANNING -> New Plan
Versions are not loaded into Product Version list.
The correct behavior is version must be loaded into the Product Version list even if there is only one product in Nitrate.
In addition from:
Improve the test plan edit page #68
It would be great if new products, product version and plan types can be added when a test plan is being edited. In other words, the test plan edit page should behave more like the page for adding test plan
NOTE: there are probably separate templates for new(create) and edit actions. Need to unify them!
While trying to run\install Kiwi on my machine, I've met some issues:
Step 4/23 : RUN rpm -Uhv https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm && yum -y --setopt=tsflags=nodocs install centos-release-scl && yum -y --setopt=tsflags=nodocs install rh-python35 gcc mariadb-devel libxml2-devel libxslt-devel httpd-devel mod_wsgi mod_ssl npm && yum -y update --setopt=tsflags=nodocs
---> Running in 93f5d3f42ea7
curl: (22) The requested URL returned error: 404 Not Found
error: skipping https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm - transfer failed
Probably URL should be changed to https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
Loaded plugins: fastestmirror, ovl
ftp://mirror.vtti.vt.edu/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed to connect to 2001:468:c80:2133:0:b0e2:0:9874: Cannot assign requested address"
Trying other mirror.
ftp://mirror.bytemark.co.uk/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed to connect to 2001:41c8:20:5e6::10: Cannot assign requested address"
Trying other mirror.
Before all the magic, one need Docker (ok, this was simple) and docker-compose, but it's not written anywhere
I was not able to locate manual for production run, so how do I make it accessible not only for localhost, but for the network?
After all, system appears, but the interface looks ugly (see screenshot)
Any ideas, what's wrong with the interface? How can I make it nicer?
There's a string_to_list function and we don't need to have a class method with the same name.
also related is get_choice
in tcms/search/forms.py
These original issues relate to messaging support and supporting more backends:
Nitrate/Nitrate#98
Nitrate/Nitrate#152
TODO:
figure out how exactly is messaging used, from what I can tell it is mostly for integration with an Errata system, which we probably don't need
Figure out if we want to drop messaging entirely or not. Maybe replace with a notification layer which can be hooked into various other messaging mechanisms (e.g. email, QPID, RabbitMQ, etc)
SoftwareCollections.org has released Python 3.6. We should try adding support for that version both for test/development and for running our docker image with.
As a user, I would expect simple redirect to avoid extra investigation "Why isn't it working?".
django-pagination is too old and looks it is not being maintained now. Drop it and back to use django's builtin Pagination in order to upgrade to Django >=1.9.
Admin guide needs to say what an errata system is and how it is used in Nitrate
Also there is some messaging integration under tcms.integrations.errata which at least needs to be documented and enabled only if setting is configured
NOTE: except the integration this errata info is used only to produce a clickable link which really feels the same as attaching a bug tracker URL to the test run. Given the proposed changes in #185 I think we can refactor this template to actually use a Bug tracker link and its corresponding integrations.
WARNING: do not publically report security issues in the bug tracker!
Ping us via email to coordinate the fix and disclosure of the problem!
How to intergrate with redmine?
web
DEMO
Always
Nothing happens in UI, the POST ajax request fails with a 500 ISE.
Default tester is updated.
When running a single test file with pytest:
tcms/testruns/tests/test_views.py::TestOrderCases::test_404_if_run_does_not_exist
/home/senko/Kiwi/tcms/xmlrpc/decorators.py:44: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
argspec = inspect.getargspec(function)
-- Docs: http://doc.pytest.org/en/latest/warnings.html
w3m is used for html to text conversion. This is used quite often and it is not a good idea to use a command line tool and spawn external processes for that.
Cannot use environment groups
Web
Demo https://demo.kiwitcms.org
Always
Combobox value is "-----", no env group was actually set.
Env group should be set
Looks like regression since in Nitrate it was fine. Or maybe DEMO issue, I haven't checked it with real instance
Explore how to integrate with GitHub issue tracker
Looks like special symbols in test run name is not being escaped properly
web
Always
Error appears
Test run should be found
Maybe the same error exists for other fields as well
Cannot set test case run status without a comment
web
Always
Error "Please fill out this field" appear near "Comments"
Numbers in upper statistics table were changed
Status should be recorded either w\o comment if it's empty or with comment, if it's not empty.
Numbers in upper table should be changed only in case when actual status change was performed.
Possible solution - make it optional only for "Success" status
Bugs from test run are not in XML when exported
web
always
XML contains empty "<bugs/>" section
Bugs should be in XML
KTP doesn't know how to:
Bookmark something and go to
http://localhost/accounts/atodorov/bookmarks/
Select 1 bookmark item and click the delete button. The response is JSON and it is rendered as plan text inside the browser.
3.37
Always
Having "Type" set for Issue tracker it's becoming impossible to generate and view bug reports until other API data is set correctly (probably?)
web
demo, local
always
(considering one has clean default installation with default Jira and Bugzilla instances)
Also make sure that it's impossible to change "Type" back to NULL, so one has to fix database manually.
Report should appear
From stacktrace:
File "/venv/lib64/python3.5/site-packages/tcms/testruns/views.py" in get_context_data
789. tracker = tracker_class(bug_system)
When "Type" is set then tracker_class is actual Issue Tracker class (JIRA in this case). In constructor 163: tcms/issuetracker/types.py
no any check is being performed before creating jira.JIRA instance and this leads to an error because default url is "localhost:2990" for some reason and it's obviously not accessible.
Looks like method is_adding_testcase_to_issue_disabled contains exactly needed check, so probably it should be renamed and then it should be called before creating actual instance calling issue tracker API.
Environment groups and properties exist as Test Run instance field, but there is no way to search by properties value.
web
Always
XML2Dict is used for accessing XML data easily by converting XML document to a dictionary. Currently, it works. However, it has some issues, such as the code is old and seems not maintained in upstream, and additional work is required to maintain its code to ensure it's compatible with Python 3
fix RhBug 1174111, that is upload an HTML would break internal features.
As part of #79 I've implemented bug ID validation in JavaScript which happens on the client side:
test case run bug add
test case run bug add in bulk
test case run bug delete
test case -> tab bugs -> add bug
All of the corresponding Django code uses validate_bug_id on the backend as well.
For methods which handle data coming from the UI do we want to repeat the validation if it was already done on the client side ?
For methods which don't process data from the UI (e.g. core/ajax.py) we still need to validate bug ID, check if the Python implementation matches the JavaScript implementation and if it works in an optimal way (e.g. the least possible DB hits).
Can we use the same regular expressions in both Python and JavaScript ? So far it looks like it but we need to be 100% sure. Otherwise we need to add another field for the Python regular expressions.
Do we even want to do validation ?
TestCase.add_component should be the right place to fix this. To check if there is already relationship between a case and a component.
Unit test is required.
PyMySQL supports Python 3.
MySQL-python appears to have been abandoned. Look for the current most active alternative.
There is already field TestCaseRun.notes, and it's even being displayed at some pages, but I was not able to find any way to edit it. Is it possible to have some textbox in test case run window (see screenshot)? And surely possibility to search\filter by this field
web
Always
testcases/actions.py:class ComponentActions
and innertestplans/views.py: class ComponentActions
appear to be very similar. Need to investigate and refactor, leaving only one of them with full test coverage.Note: this is similar to #184
The intention is to disable integration actions if the necessary settings are not configured. This is not currently the case and KTP will fail with an exception if the user tries to perform an operation which isn't configured.
These ignores were introduced in #75 due to a new version of flake8. Need to get rid of the ignores and properly update the code.
See original report at Nitrate/Nitrate#229
@hepeihao524 from the original bug report I see that there are 2 users with the same email. Can you figure out how did that happen ? Were the two accounts created via the webUI without any error messages being reported from the backend ?
At the moment static files are not versioned and users may happen to use a stale copy. This is especially true when using KTP as a docker container.
Looks like API is broken
API\web
Both DEMO and 04ee633
Always
In Demo - error 500
In my local instance -
TypeError at /xmlrpc/
context must be a dict rather than RequestContext.
API page should be open
I've added our Jira into Admin, so links to bugs work good. Trying to understand what can Kiwi do, I've also added Base URL (https://ourjiraaddress.com/) and API URL (https://ourjiraaddress.com/rest/api/2/project/ourprojname), filled login and password, but even when I mark a checkbox "Check to add Test Case(s) to Issue Tracker" from test run, looks like nothing happens. No any error appears.
It would be nice to have some kind of "health check" in issue tracker Admin page to make sure that everything was entered correctly.
As an idea, it could be something like "Check that Kiwi can read issue details" by given URLs, credentials and (for check only) issue number.
Purpose: to be sure that integration works in general without guessing where the error is.
Summary: Users with long emails will face issue to register due to email field validation being too restrictive about the length.
Component: Registration
Version: 3+
Reproducible: every time
Browser: Chrome v61
Steps:
Actual: User cant enter full email
Expected: User should be able to register with long emails. Validation should be improved.
Additional info: Works fine with shorter emails.
While working on upstream #79 I have discovered that for adding and removing bugs we use separate code paths which are very similar. This applies both to the Python code and to the JavaScript code. These can be refactored to use a single implementation.
- Test Case Run add/remove bug uses
testruns.views.bug()
and its internal classCaseRunBugActions
and fromtesrun_actions.js
->addCaseRunBug()
,removeCaseRunBug()
,updateBugsActionAdd()
andupdateBugsActionRemvoe()
When Celery is enabled the task which links the failed test case run with a Bugzilla bug doesn't work. Works normally when this is executed as a thread!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.