Merge lp:~ara/ubuntu-qa-website/bug_291066 into lp:~ubuntu-qa-website-devel/ubuntu-qa-website/trunk

Proposed by Ara Pulido
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ara/ubuntu-qa-website/bug_291066
Merge into: lp:~ubuntu-qa-website-devel/ubuntu-qa-website/trunk
Diff against target: 101 lines (+34/-14)
2 files modified
code/modules/qatracker/qatracker.display.php (+12/-5)
code/modules/qatracker/qatracker.function.php (+22/-9)
To merge this branch: bzr merge lp:~ara/ubuntu-qa-website/bug_291066
Reviewer Review Type Date Requested Status
Ubuntu QA Website Developers Pending
Review via email: mp+16187@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ara Pulido (ara) wrote :

I have implemented an easy version of the feature requested in bug 291066.

Using the available DB schema, I use a new type of result for a testcase "Started", which will appear in the database as "2".

In the Image list view, it won't appear as a result, as it is not finished.
In the Testcases list (inside an image), it will appear as "Started" if no finished results have been summitted.
In the Results list view (inside a testcase), it will appear as a new option to submit aside from Passed/Failed and it would have a clock icon.

Using the Last Changed timestamp, we would know when the tester marked the test as "Started".

No DB schema or data changes needed.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'code/modules/qatracker/images/started.png'
2Binary files code/modules/qatracker/images/started.png 1970-01-01 00:00:00 +0000 and code/modules/qatracker/images/started.png 2009-12-15 12:25:22 +0000 differ
3=== modified file 'code/modules/qatracker/qatracker.display.php'
4--- code/modules/qatracker/qatracker.display.php 2009-11-09 16:50:28 +0000
5+++ code/modules/qatracker/qatracker.display.php 2009-12-15 12:25:22 +0000
6@@ -458,8 +458,11 @@
7 $item->reporterid=user_load(array('uid' => $item->reporterid))->name;
8 if ($item->result == 0)
9 $image="<img style=\"margin-top:-3px\" src=\"$base_url/modules/qatracker/images/fail.png\" alt=\"fail\" />";
10- else
11+ elseif ($item->result == 1)
12 $image="<img style=\"margin-top:-3px\" src=\"$base_url/modules/qatracker/images/pass.png\" alt=\"pass\" />";
13+ else
14+ $image="<img style=\"margin-top:-3px\" src=\"$base_url/modules/qatracker/images/started.png\" alt=\"started\" />";
15+
16 if (date("H:i:s",$item->lastchange) == "00:00:00")
17 $item->lastchange=date("Y-m-d",$item->lastchange);
18 else
19@@ -537,7 +540,7 @@
20 $content="<br />This page shows how many times each testcase has been tested.<br />Testcases with no results are shown in red, with less than 5 results in orange and with more than 5 results in green.<br />This page doesn't show the result of those tests but only the coverage (if a testcase has 6 failed result it'll be shown in green anyway)";
21 foreach ($products as $product => $title) {
22 $content.="<h1>$title</h1><table class=\"listing\" style=\"width:auto;\">";
23- $tests=db_query("SELECT qatracker_testcase.title, count(qatracker_result.id) FROM qatracker_build LEFT JOIN qatracker_milestone ON qatracker_milestone.id=qatracker_build.milestoneid LEFT JOIN qatracker_result ON qatracker_result.buildid=qatracker_build.id LEFT JOIN qatracker_product ON qatracker_product.id=qatracker_build.productid RIGHT JOIN qatracker_testcase ON qatracker_testcase.productid=qatracker_product.id WHERE qatracker_testcase.status='0' AND qatracker_product.status='0' AND qatracker_product.title~'".$product."' AND qatracker_build.status='0' AND qatracker_milestone.status='0' AND ((qatracker_result.status='0' AND qatracker_testcase.id=qatracker_result.testcaseid) OR qatracker_result.status is Null) GROUP BY qatracker_testcase.title, substring(qatracker_product.title from '.* (.*) .*$')");
24+ $tests=db_query("SELECT qatracker_testcase.title, count(qatracker_result.id) FROM qatracker_build LEFT JOIN qatracker_milestone ON qatracker_milestone.id=qatracker_build.milestoneid LEFT JOIN qatracker_result ON qatracker_result.buildid=qatracker_build.id LEFT JOIN qatracker_product ON qatracker_product.id=qatracker_build.productid RIGHT JOIN qatracker_testcase ON qatracker_testcase.productid=qatracker_product.id WHERE qatracker_testcase.status='0' AND qatracker_product.status='0' AND qatracker_product.title~'".$product."' AND qatracker_build.status='0' AND qatracker_milestone.status='0' AND ((qatracker_result.status='0' AND qatracker_result.result != '2' AND qatracker_testcase.id=qatracker_result.testcaseid) OR qatracker_result.status is Null) GROUP BY qatracker_testcase.title, substring(qatracker_product.title from '.* (.*) .*$')");
25 $result=false;
26 while ($item = db_fetch_object($tests)) {
27 if ($item->count == 0)
28@@ -689,14 +692,18 @@
29 $data=qatracker_checkpostvalue();
30 $username=$user->uid;
31 }
32- if ($data['isot_result']==0)
33+
34+ if ($data['isot_result']=='0')
35 $selectf="checked=\"checked\"";
36- else
37+ elseif ($data['isot_result']=='1')
38 $selectp="checked=\"checked\"";
39+ else
40+ $selects="checked=\"checked\"";
41+
42 $content="<br />".$data['isot_error']."<br /><form method=\"post\" action=\"\">
43 <table cellpadding=\"2\" border=\"0\">
44 <tr><td>Username : </td><td><b><i>".user_load(array('uid' => $username))->name."</i></b></td></tr>
45- <tr><td style=\"padding-top:1em;\">Result : <span style=\"color:red\">*</span></td><td style=\"padding-top:1em;width:100%\"><input type=\"radio\" name=\"isot_result\" value=\"1\" $selectp />Passed <input type=\"radio\" name=\"isot_result\" value=\"0\" $selectf />Failed</td></tr>
46+ <tr><td style=\"padding-top:1em;\">Result : <span style=\"color:red\">*</span></td><td style=\"padding-top:1em;width:100%\"><input type=\"radio\" name=\"isot_result\" value=\"1\" $selectp />Passed <input type=\"radio\" name=\"isot_result\" value=\"0\" $selectf />Failed <input type=\"radio\" name=\"isot_result\" value=\"2\" $selects />Started</td></tr>
47 <tr><td style=\"padding-top:2em;\">Bug ID</td><td style=\"padding-top:2em;width:100%\">Serious</td></tr>";
48 $count=0;
49 if (count($data['isot_bug'])!=0) {
50
51=== modified file 'code/modules/qatracker/qatracker.function.php'
52--- code/modules/qatracker/qatracker.function.php 2008-03-05 20:45:53 +0000
53+++ code/modules/qatracker/qatracker.function.php 2009-12-15 12:25:22 +0000
54@@ -168,9 +168,9 @@
55 function qatracker_getbuildstat($buildID,$archive=0) {
56 $total=db_query("SELECT count(title) from qatracker_testcase LEFT JOIN qatracker_build ON qatracker_build.productid=qatracker_testcase.productid WHERE qatracker_build.id='$buildID' AND qatracker_testcase.status='0' AND qatracker_testcase.status='0'");
57 $total=db_result($total);
58- $done=db_query("SELECT count(DISTINCT testcaseID) from qatracker_result LEFT JOIN qatracker_testcase ON qatracker_testcase.id=qatracker_result.testcaseid WHERE qatracker_result.buildid='".$buildID."' AND qatracker_result.status='0' AND qatracker_testcase.status='0'");
59+ $done=db_query("SELECT count(DISTINCT testcaseID) from qatracker_result LEFT JOIN qatracker_testcase ON qatracker_testcase.id=qatracker_result.testcaseid WHERE qatracker_result.buildid='".$buildID."' AND qatracker_result.status='0' AND qatracker_result.result != '2' AND qatracker_testcase.status='0'");
60 $done=db_result($done);
61- $donet=db_query("SELECT count(DISTINCT testcaseID) from qatracker_result LEFT JOIN qatracker_testcase ON qatracker_testcase.id=qatracker_result.testcaseid WHERE qatracker_result.buildid='".$buildID."' AND qatracker_result.status='0'");
62+ $donet=db_query("SELECT count(DISTINCT testcaseID) from qatracker_result LEFT JOIN qatracker_testcase ON qatracker_testcase.id=qatracker_result.testcaseid WHERE qatracker_result.buildid='".$buildID."' AND qatracker_result.result != '2' AND qatracker_result.status='0'");
63 $donet=db_result($donet);
64 $reports=db_query("SELECT count(id) from qatracker_result WHERE buildid='".$buildID."' AND status='0'");
65 $reports=db_result($reports);
66@@ -215,16 +215,29 @@
67 }
68
69 function qatracker_getresultsnumber($buildID, $testcaseID) {
70+ $fail="";
71 $total=db_query("SELECT count(id) from qatracker_result WHERE buildid='".$buildID."' AND testcaseid='".$testcaseID."' AND status='0'");
72 $total=db_result($total);
73- if ($total == 0)
74+ if ($total == 0) {
75 $total="None";
76- $fail=db_query("SELECT count(id) from qatracker_result WHERE buildid='".$buildID."' AND testcaseid='".$testcaseID."' AND status='0' AND result='0'");
77- $fail=db_result($fail);
78- if ($fail != 0)
79- $fail="<span style=\"font-weight:bold; color:#641500;\">($fail)</span>";
80- else
81- $fail="";
82+ }
83+ else {
84+ $finished=db_query("SELECT count(id) from qatracker_result WHERE buildid='".$buildID."' AND testcaseid='".$testcaseID."' AND status='0' AND result != '2'");
85+ $finished=db_result($finished);
86+ if ($finished == 0) {
87+ $total = "Started";
88+ }
89+ else {
90+ $total = $finished;
91+ $fail=db_query("SELECT count(id) from qatracker_result WHERE buildid='".$buildID."' AND testcaseid='".$testcaseID."' AND status='0' AND result='0'");
92+ $fail=db_result($fail);
93+
94+ if ($fail != 0)
95+ $fail="<span style=\"font-weight:bold; color:#641500;\">($fail)</span>";
96+ else
97+ $fail="";
98+ }
99+ }
100 return "$total $fail";
101 }
102

Subscribers

People subscribed via source and target branches

to status/vote changes: