Giter Site home page Giter Site logo

kiwitcms / kiwi Goto Github PK

View Code? Open in Web Editor NEW
931.0 49.0 277.0 29.47 MB

open source test management system with over 2 million downloads!

Home Page: https://kiwitcms.org

License: GNU General Public License v2.0

Makefile 0.41% Python 70.18% JavaScript 11.28% CSS 0.50% HTML 15.54% Dockerfile 0.20% Shell 1.56% Ruby 0.09% RobotFramework 0.13% Smarty 0.11% Lua 0.01%
testing testing-tools management qa-team qa qatools testopia testlink

kiwi's People

Contributors

airinb avatar allexander203 avatar asankov avatar atodorov avatar brymut avatar cmbahadir avatar deepsource-autofix[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar fholec avatar greenkeeper[bot] avatar iamabhishek0 avatar ivo0126 avatar jianchen2580 avatar kiwitcms-bot avatar kryskool avatar man4oni avatar mfonism avatar pandafy avatar pre-commit-ci[bot] avatar prome88 avatar psss avatar pyup-bot avatar rmadjev avatar rsasov avatar schwarzkrieger avatar snyk-bot avatar somenewacc avatar svetlomirbalevski avatar tkdchen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kiwi's Issues

One-click test execution status setting and commenting is missing

Description of problem

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
image

Component (web, API, etc)

Web

Version or commit hash (if applicable)

Demo

How often reproducible

Always

Steps to Reproduce

  1. Create test plan, test case and test run
  2. Execute test run
  3. Check test execution UI element

Actual results

No possibility to set status and\or add comment in one click

Expected results

One-click setting of Status and adding comment should be possible

Additional info

Looks like regression

Trim down dependencies and settings

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.

Ordinary search and advanced search results use different templates

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

[refactor] Testrun new.html and edit.html are very similar #190

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.

Consider removing DataTableResult class

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.

[bug] Product versions are not loaded in /plans/new/ when there is only one product #132

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!

Installation issues

While trying to run\install Kiwi on my machine, I've met some issues:

  • In the repo node_modules folder doesn't exist. So I had to comment lines 161-164 in common settings when running w\o Docker.
  • While running make docker-image, error (1) appears

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

  • Error (2), but from another mirrors it was fetched successfully

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)
    image
    Any ideas, what's wrong with the interface? How can I make it nicer?

[messaging] Rethink messaging support

These original issues relate to messaging support and supporting more backends:

Nitrate/Nitrate#98
Nitrate/Nitrate#152

TODO:

  1. 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

  2. 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)

RFE: Migrate to Python 3.6

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.

Add redirect HTTP->HTTPS

As a user, I would expect simple redirect to avoid extra investigation "Why isn't it working?".

[docs] Document and refactor errata system integration, original #189

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.

How to intergrate with redmine?

WARNING: do not publically report security issues in the bug tracker!
Ping us via email to coordinate the fix and disclosure of the problem!

Description of problem

How to intergrate with redmine?

Component (web, API, etc)

Version or commit hash (if applicable)

How often reproducible

Steps to Reproduce

Actual results

Expected results

Additional info

Default tester can't be assigned via TP

Component (web, API, etc)

web

Version or commit hash (if applicable)

DEMO

How often reproducible

Always

Steps to Reproduce

  1. Create a Test Plan
  2. Add some Test Cases to it.
  3. Click the Cases tab
  4. Select Test Cases
  5. Click the Default Tester button
  6. Enter a valid tester email and click Update

Actual results

Nothing happens in UI, the POST ajax request fails with a 500 ISE.

Expected results

Default tester is updated.

Additional info

DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead

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

[DEMO] Environment cannot be set for test plan

Description of problem

Cannot use environment groups

Component (web, API, etc)

Web

Version or commit hash (if applicable)

Demo https://demo.kiwitcms.org

How often reproducible

Always

Steps to Reproduce

  1. Create some env properties
  2. Create some env group
  3. Go to "New test plan"
  4. Make sure environment groups combobox exists, select env group
  5. Press "Create"
  6. Press "Edit"
  7. Make sure combobox value is "-----", no env group was actually set.

Actual results

Combobox value is "-----", no env group was actually set.

Expected results

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

Special symbols in test run name cause search failure

Description of problem

Looks like special symbols in test run name is not being escaped properly

Component (web, API, etc)

web

Version or commit hash (if applicable)

04ee633

How often reproducible

Always

Steps to Reproduce

  1. Create Test run with "\" symbols in the name i.e. "Test Product with Windows\Chrome"
  2. Try to search this test run by product
  3. Make sure error will appear
    image

Actual results

Error appears

Expected results

Test run should be found

Additional info

Maybe the same error exists for other fields as well

Comment should be optional for test case run

Description of problem

Cannot set test case run status without a comment

Component (web, API, etc)

web

Version or commit hash (if applicable)

04ee633

How often reproducible

Always

Steps to Reproduce

  1. Create test-pan-case-run
  2. Go to test run
  3. Go to test case run
  4. For test case run, click icon with result status (i.e. green OK checkbox)

Actual results

Error "Please fill out this field" appear near "Comments"
Numbers in upper statistics table were changed
image

Expected results

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.

Additional info

Possible solution - make it optional only for "Success" status

Bugs are not appearing in exported XML

Description of problem

Bugs from test run are not in XML when exported

Component (web, API, etc)

web

Version or commit hash (if applicable)

04ee633

How often reproducible

always

Steps to Reproduce

  1. Create some test run with tests
  2. Execute tests, put bug into some test case runs
  3. Press "Export to XML" button

Actual results

XML contains empty "<bugs/>" section

Expected results

Bugs should be in XML

JIRA integration is missing

KTP doesn't know how to:

  • open a new JIRA with prefilled values for the product/steps to reproduce
  • attach/link a failing test case run to an existing JIRA issue

Reports with bugs are failing when tracker type is specified, but the other data is not

Description of problem

Having "Type" set for Issue tracker it's becoming impossible to generate and view bug reports until other API data is set correctly (probably?)

Component (web, API, etc)

web

Version or commit hash (if applicable)

demo, local

How often reproducible

always

Steps to Reproduce

(considering one has clean default installation with default Jira and Bugzilla instances)

  1. Go to admin - Issue tracker
  2. Click Jira
  3. Select Type - Jira
  4. Do not fill any other fields
  5. Go to some test run with some Jira bugs
  6. Click "Bugs" link https://demo.kiwitcms.org/run/3/report/#buglist

Also make sure that it's impossible to change "Type" back to NULL, so one has to fix database manually.

Actual results

  1. Make sure exception occurs "Gateway Timeout" w\o debug and detailed error with debug "JiraError HTTP 404 url: http://localhost:2990/jira/rest/api/2/serverInfo"

Expected results

Report should appear

Additional info

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.

Add possibility to search by environment

Description of problem

Environment groups and properties exist as Test Run instance field, but there is no way to search by properties value.

Component (web, API, etc)

web

Version or commit hash (if applicable)

04ee633

How often reproducible

Always

[dependencies] Drop XML2Dict, upstream #133

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

Possible validate_bug_id usage refactoring #183

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 ?

Add simple possibility to use test case run notes

Description of problem

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

Component (web, API, etc)

web

Version or commit hash (if applicable)

04ee633

How often reproducible

Always

Additional info

image

Issue Tracker integration: leave empty URL to disable

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.

Versioned static files

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.

API is broken

Description of problem

Looks like API is broken

Component (web, API, etc)

API\web

Version or commit hash (if applicable)

Both DEMO and 04ee633

How often reproducible

Always

Steps to Reproduce

  1. Go to http://<kiwi_address>/xmlrpc

Actual results

In Demo - error 500
In my local instance -

TypeError at /xmlrpc/
context must be a dict rather than RequestContext.

Expected results

API page should be open

Add some kind of "Health Check" for bug tracker integration (Jira)

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.

User cant register if email length is > 30 chars

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:

  1. Go go to Kiwi TCMS login page
  2. Click on guest login
  3. Click on Register
  4. Populate all fields with valid data(email longer than 30 chars. example [email protected])

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.

[refactor] add/remove bug to use common implementation

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 class CaseRunBugActions and from tesrun_actions.js -> addCaseRunBug(), removeCaseRunBug(), updateBugsActionAdd() and updateBugsActionRemvoe()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.