@@ -31,7 +31,7 @@ def test_run_vizrank(self):
3131 # run through all states
3232 task .is_interruption_requested .return_value = False
3333 states = [(0 , 1 ), (0 , 2 ), (0 , 3 ), (1 , 2 ), (1 , 3 ), (2 , 3 )]
34- res = run_vizrank (compute_score , chain (states ), scores , task )
34+ res = run_vizrank (compute_score , chain (states ), scores , 0 , 6 , task )
3535
3636 next_state = self .assertQueueEqual (
3737 res .queue , [0 , 0 , 0 , 3 , 2 , 5 ], compute_score ,
@@ -41,14 +41,15 @@ def test_run_vizrank(self):
4141 self .assertListEqual (res .scores , res_scores )
4242 self .assertIsNot (scores , res .scores )
4343 self .assertEqual (task .set_partial_result .call_count , 6 )
44+ self .assertEqual (task .set_progress_value .call_count , 6 )
4445
4546 def test_run_vizrank_interrupt (self ):
4647 scores , task = [], Mock ()
4748 # interrupt calculation in third iteration
4849 task .is_interruption_requested .side_effect = lambda : \
4950 True if task .is_interruption_requested .call_count > 2 else False
5051 states = [(0 , 1 ), (0 , 2 ), (0 , 3 ), (1 , 2 ), (1 , 3 ), (2 , 3 )]
51- res = run_vizrank (compute_score , chain (states ), scores , task )
52+ res = run_vizrank (compute_score , chain (states ), scores , 0 , 6 , task )
5253
5354 next_state = self .assertQueueEqual (
5455 res .queue , [0 , 0 ], compute_score , states [:2 ], states [1 :3 ])
@@ -57,11 +58,14 @@ def test_run_vizrank_interrupt(self):
5758 self .assertListEqual (res .scores , res_scores )
5859 self .assertIsNot (scores , res .scores )
5960 self .assertEqual (task .set_partial_result .call_count , 2 )
61+ self .assertEqual (task .set_progress_value .call_count , 2 )
62+ task .set_progress_value .assert_called_with (int (1 / 6 * 100 ))
6063
6164 # continue calculation through all states
6265 task .is_interruption_requested .side_effect = lambda : False
6366 i = states .index (next_state )
64- res = run_vizrank (compute_score , chain (states [i :]), res_scores , task )
67+ res = run_vizrank (compute_score , chain (states [i :]),
68+ res_scores , 2 , 6 , task )
6569
6670 next_state = self .assertQueueEqual (
6771 res .queue , [0 , 3 , 2 , 5 ], compute_score , states [2 :],
@@ -71,6 +75,8 @@ def test_run_vizrank_interrupt(self):
7175 self .assertListEqual (res .scores , res_scores )
7276 self .assertIsNot (scores , res .scores )
7377 self .assertEqual (task .set_partial_result .call_count , 6 )
78+ self .assertEqual (task .set_progress_value .call_count , 6 )
79+ task .set_progress_value .assert_called_with (int (5 / 6 * 100 ))
7480
7581 def assertQueueEqual (self , queue , positions , f , states , next_states ):
7682 self .assertIsInstance (queue , Queue )
@@ -96,7 +102,10 @@ def invoke_on_partial_result():
96102 widget .on_partial_result (run_vizrank (
97103 widget .compute_score ,
98104 widget .iterate_states (widget .saved_state ),
99- widget .scores , task
105+ widget .scores ,
106+ widget .saved_progress ,
107+ widget .state_count (),
108+ task
100109 ))
101110
102111 task = Mock ()
@@ -107,6 +116,7 @@ def invoke_on_partial_result():
107116 widget .compute_score = compute_score
108117 widget .iterate_states = iterate_states
109118 widget .row_for_state = lambda sc , _ : [QStandardItem (str (sc ))]
119+ widget .state_count = lambda : len (states )
110120
111121 # interrupt calculation in third iteration
112122 task .is_interruption_requested .side_effect = lambda : \
@@ -117,6 +127,7 @@ def invoke_on_partial_result():
117127 sorted ([compute_score (x ) for x in states [:2 ]])):
118128 self .assertEqual (widget .rank_model .item (row , 0 ).text (), str (score ))
119129 self .assertEqual (widget .saved_progress , 2 )
130+ task .set_progress_value .assert_called_with (int (1 / 6 * 100 ))
120131
121132 # continue calculation through all states
122133 task .is_interruption_requested .side_effect = lambda : False
@@ -126,6 +137,7 @@ def invoke_on_partial_result():
126137 sorted ([compute_score (x ) for x in states ])):
127138 self .assertEqual (widget .rank_model .item (row , 0 ).text (), str (score ))
128139 self .assertEqual (widget .saved_progress , 6 )
140+ task .set_progress_value .assert_called_with (int (5 / 6 * 100 ))
129141
130142
131143if __name__ == "__main__" :
0 commit comments