Skip to content

Commit b69dde5

Browse files
wanamBeyondEvil
authored andcommitted
Keep sort preference for previously sorted columns (#220)
* Keep sort preference for previously sorted columns
1 parent 4299ea2 commit b69dde5

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

pytest_html/resources/main.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,18 @@ function sort(items, key_func, reversed) {
144144
var sort_array = items.map(function(item, i) {
145145
return [key_func(item), i];
146146
});
147-
var multiplier = reversed ? -1 : 1;
148147

149148
sort_array.sort(function(a, b) {
150149
var key_a = a[0];
151150
var key_b = b[0];
152-
return multiplier * (key_a >= key_b ? 1 : -1);
151+
152+
if (key_a == key_b) return 0;
153+
154+
if (reversed) {
155+
return (key_a < key_b ? 1 : -1);
156+
} else {
157+
return (key_a > key_b ? 1 : -1);
158+
}
153159
});
154160

155161
return sort_array.map(function(item) {

testing/js_test_report.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<tbody class="rerun results-table-row">
2929
<tr>
3030
<td class="col-result">Rerun</td>
31-
<td class="col-name">rerun.py::test_rexample</td>
31+
<td class="test-1 col-name">rerun.py::test_rexample_1</td>
3232
<td class="col-duration">1.00</td>
3333
<td class="col-links"></td></tr>
3434
<tr>
@@ -37,17 +37,19 @@
3737
<tbody class="passed results-table-row">
3838
<tr>
3939
<td class="col-result">Passed</td>
40-
<td class="col-name">rerun.py::test_example</td>
40+
<td class="test-2 col-name">rerun.py::test_example_2</td>
4141
<td class="col-duration">0.00</td>
4242
<td class="col-links"></td></tr>
4343
<tr>
4444
<td class="extra" colspan="5">
4545
<div class="empty log">No log output captured.</div>
4646
</td>
4747
</tr>
48+
</tbody>
49+
<tbody class="passed results-table-row">
4850
<tr>
4951
<td class="col-result">Passed</td>
50-
<td class="col-name">rerun.py::test_example</td>
52+
<td class="test-3 col-name">rerun.py::test_example_3</td>
5153
<td class="col-duration">0.00</td>
5254
<td class="col-links"></td></tr>
5355
<tr>

testing/test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,22 @@
2121
sort_column(row_sort);
2222
assert.equal(find_all('.results-table-row')[0].className, first_element_now);
2323
}
24+
25+
//check col-name, tests should be in this order test-1 => (test-2 => test-3) on col-name
26+
assert.equal(find_all('.col-name')[1].className, 'test-2 col-name');
27+
2428
//result
2529
sort_column_test('[col=result]',
2630
'rerun results-table-row', 'passed results-table-row');
31+
32+
//make sure sorting the result column does not change the tests order in the col-name
33+
//tests should be in this order (test-2 => test-3) => test1 on col-name
34+
assert.equal(find_all('.col-name')[0].className, 'test-2 col-name');
35+
2736
sort_column_test('[col=result]',
2837
'passed results-table-row', 'rerun results-table-row');
2938

39+
3040
//name
3141
sort_column_test('[col=name]',
3242
'rerun results-table-row', 'passed results-table-row');

0 commit comments

Comments
 (0)