Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(556)

Side by Side Diff: appengine/findit/waterfall/flake/test/recursive_flake_pipeline_test.py

Issue 2345093002: [Findit] Extending versioned_model.py to support versioning multiple entities of the same class. (Closed)
Patch Set: Ignore this patch, uploaded unrelated change to wrong branch Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from common import constants 5 from common import constants
6 from common.pipeline_wrapper import pipeline_handlers 6 from common.pipeline_wrapper import pipeline_handlers
7 from model import analysis_status 7 from model import analysis_status
8 from model.flake.master_flake_analysis import MasterFlakeAnalysis 8 from model.flake.master_flake_analysis import MasterFlakeAnalysis
9 from model.flake.flake_swarming_task import FlakeSwarmingTask 9 from model.flake.flake_swarming_task import FlakeSwarmingTask
10 from waterfall.flake import recursive_flake_pipeline 10 from waterfall.flake import recursive_flake_pipeline
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 self._CreateAndSaveMasterFlakeAnalysis( 121 self._CreateAndSaveMasterFlakeAnalysis(
122 master_name, builder_name, build_number, step_name, 122 master_name, builder_name, build_number, step_name,
123 test_name, status=analysis_status.PENDING 123 test_name, status=analysis_status.PENDING
124 ) 124 )
125 self._CreateAndSaveFlakeSwarmingTask( 125 self._CreateAndSaveFlakeSwarmingTask(
126 master_name, builder_name, build_number, step_name, 126 master_name, builder_name, build_number, step_name,
127 test_name, status=analysis_status.COMPLETED 127 test_name, status=analysis_status.COMPLETED
128 ) 128 )
129 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 129 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
130 build_number, step_name, test_name) 130 build_number, step_name, test_name)
131 analysis.success_rates.append(.08) 131 analysis.pass_rates.append(.08)
132 analysis.build_numbers.append(100) 132 analysis.build_numbers.append(100)
133 analysis.put() 133 analysis.put()
134 134
135 NextBuildNumberPipeline.run( 135 NextBuildNumberPipeline.run(
136 NextBuildNumberPipeline(), master_name, builder_name, 136 NextBuildNumberPipeline(), master_name, builder_name,
137 master_build_number, build_number, step_name, test_name, 137 master_build_number, build_number, step_name, test_name,
138 test_result_future, queue_name, flakiness_algorithm_results_dict) 138 test_result_future, queue_name, flakiness_algorithm_results_dict)
139 self.assertEquals(flakiness_algorithm_results_dict['flakes_in_a_row'], 1) 139 self.assertEquals(flakiness_algorithm_results_dict['flakes_in_a_row'], 1)
140 140
141 def testNextBuildPipelineForNewRecursionFirstStable(self): 141 def testNextBuildPipelineForNewRecursionFirstStable(self):
(...skipping 20 matching lines...) Expand all
162 self._CreateAndSaveMasterFlakeAnalysis( 162 self._CreateAndSaveMasterFlakeAnalysis(
163 master_name, builder_name, build_number, step_name, 163 master_name, builder_name, build_number, step_name,
164 test_name, status=analysis_status.PENDING 164 test_name, status=analysis_status.PENDING
165 ) 165 )
166 self._CreateAndSaveFlakeSwarmingTask( 166 self._CreateAndSaveFlakeSwarmingTask(
167 master_name, builder_name, build_number, step_name, 167 master_name, builder_name, build_number, step_name,
168 test_name, status=analysis_status.COMPLETED 168 test_name, status=analysis_status.COMPLETED
169 ) 169 )
170 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 170 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
171 build_number, step_name, test_name) 171 build_number, step_name, test_name)
172 analysis.success_rates.append(0) 172 analysis.pass_rates.append(0)
173 analysis.build_numbers.append(100) 173 analysis.build_numbers.append(100)
174 analysis.put() 174 analysis.put()
175 175
176 NextBuildNumberPipeline.run( 176 NextBuildNumberPipeline.run(
177 NextBuildNumberPipeline(), master_name, builder_name, 177 NextBuildNumberPipeline(), master_name, builder_name,
178 master_build_number, build_number, step_name, 178 master_build_number, build_number, step_name,
179 test_name, test_result_future, queue_name, 179 test_name, test_result_future, queue_name,
180 flakiness_algorithm_results_dict) 180 flakiness_algorithm_results_dict)
181 self.assertEquals(flakiness_algorithm_results_dict['stable_in_a_row'], 1) 181 self.assertEquals(flakiness_algorithm_results_dict['stable_in_a_row'], 1)
182 182
(...skipping 21 matching lines...) Expand all
204 self._CreateAndSaveMasterFlakeAnalysis( 204 self._CreateAndSaveMasterFlakeAnalysis(
205 master_name, builder_name, build_number, step_name, 205 master_name, builder_name, build_number, step_name,
206 test_name, status=analysis_status.PENDING 206 test_name, status=analysis_status.PENDING
207 ) 207 )
208 self._CreateAndSaveFlakeSwarmingTask( 208 self._CreateAndSaveFlakeSwarmingTask(
209 master_name, builder_name, build_number, step_name, 209 master_name, builder_name, build_number, step_name,
210 test_name, status=analysis_status.COMPLETED 210 test_name, status=analysis_status.COMPLETED
211 ) 211 )
212 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 212 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
213 build_number, step_name, test_name) 213 build_number, step_name, test_name)
214 analysis.success_rates.append(0) 214 analysis.pass_rates.append(0)
215 analysis.build_numbers.append(100) 215 analysis.build_numbers.append(100)
216 analysis.put() 216 analysis.put()
217 217
218 NextBuildNumberPipeline.run( 218 NextBuildNumberPipeline.run(
219 NextBuildNumberPipeline(), master_name, builder_name, 219 NextBuildNumberPipeline(), master_name, builder_name,
220 master_build_number, build_number, step_name, 220 master_build_number, build_number, step_name,
221 test_name, test_result_future, queue_name, 221 test_name, test_result_future, queue_name,
222 flakiness_algorithm_results_dict) 222 flakiness_algorithm_results_dict)
223 self.assertEquals(flakiness_algorithm_results_dict['stabled_out'], True) 223 self.assertEquals(flakiness_algorithm_results_dict['stabled_out'], True)
224 224
(...skipping 21 matching lines...) Expand all
246 self._CreateAndSaveMasterFlakeAnalysis( 246 self._CreateAndSaveMasterFlakeAnalysis(
247 master_name, builder_name, build_number, step_name, 247 master_name, builder_name, build_number, step_name,
248 test_name, status=analysis_status.PENDING 248 test_name, status=analysis_status.PENDING
249 ) 249 )
250 self._CreateAndSaveFlakeSwarmingTask( 250 self._CreateAndSaveFlakeSwarmingTask(
251 master_name, builder_name, build_number, step_name, 251 master_name, builder_name, build_number, step_name,
252 test_name, status=analysis_status.COMPLETED 252 test_name, status=analysis_status.COMPLETED
253 ) 253 )
254 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 254 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
255 build_number, step_name, test_name) 255 build_number, step_name, test_name)
256 analysis.success_rates.append(.50) 256 analysis.pass_rates.append(.50)
257 analysis.build_numbers.append(100) 257 analysis.build_numbers.append(100)
258 analysis.put() 258 analysis.put()
259 259
260 NextBuildNumberPipeline.run( 260 NextBuildNumberPipeline.run(
261 NextBuildNumberPipeline(), master_name, builder_name, 261 NextBuildNumberPipeline(), master_name, builder_name,
262 master_build_number, build_number, step_name, 262 master_build_number, build_number, step_name,
263 test_name, test_result_future, queue_name, 263 test_name, test_result_future, queue_name,
264 flakiness_algorithm_results_dict) 264 flakiness_algorithm_results_dict)
265 self.assertEquals(flakiness_algorithm_results_dict['flaked_out'], True) 265 self.assertEquals(flakiness_algorithm_results_dict['flaked_out'], True)
266 266
(...skipping 21 matching lines...) Expand all
288 self._CreateAndSaveMasterFlakeAnalysis( 288 self._CreateAndSaveMasterFlakeAnalysis(
289 master_name, builder_name, build_number, step_name, 289 master_name, builder_name, build_number, step_name,
290 test_name, status=analysis_status.PENDING 290 test_name, status=analysis_status.PENDING
291 ) 291 )
292 self._CreateAndSaveFlakeSwarmingTask( 292 self._CreateAndSaveFlakeSwarmingTask(
293 master_name, builder_name, build_number, step_name, 293 master_name, builder_name, build_number, step_name,
294 test_name, status=analysis_status.COMPLETED 294 test_name, status=analysis_status.COMPLETED
295 ) 295 )
296 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 296 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
297 build_number, step_name, test_name) 297 build_number, step_name, test_name)
298 analysis.success_rates.append(.50) 298 analysis.pass_rates.append(.50)
299 analysis.build_numbers.append(100) 299 analysis.build_numbers.append(100)
300 analysis.put() 300 analysis.put()
301 301
302 queue_name = {'x': False} 302 queue_name = {'x': False}
303 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument 303 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument
304 queue_name['x'] = True # pragma: no cover 304 queue_name['x'] = True # pragma: no cover
305 305
306 self.mock( 306 self.mock(
307 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run) 307 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run)
308 NextBuildNumberPipeline.run( 308 NextBuildNumberPipeline.run(
(...skipping 26 matching lines...) Expand all
335 self._CreateAndSaveMasterFlakeAnalysis( 335 self._CreateAndSaveMasterFlakeAnalysis(
336 master_name, builder_name, build_number, step_name, 336 master_name, builder_name, build_number, step_name,
337 test_name, status=analysis_status.PENDING 337 test_name, status=analysis_status.PENDING
338 ) 338 )
339 self._CreateAndSaveFlakeSwarmingTask( 339 self._CreateAndSaveFlakeSwarmingTask(
340 master_name, builder_name, build_number, step_name, 340 master_name, builder_name, build_number, step_name,
341 test_name, status=analysis_status.ERROR 341 test_name, status=analysis_status.ERROR
342 ) 342 )
343 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 343 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
344 build_number, step_name, test_name) 344 build_number, step_name, test_name)
345 analysis.success_rates.append(.50) 345 analysis.pass_rates.append(.50)
346 analysis.build_numbers.append(100) 346 analysis.build_numbers.append(100)
347 analysis.put() 347 analysis.put()
348 348
349 queue_name = {'x': False} 349 queue_name = {'x': False}
350 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument 350 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument
351 queue_name['x'] = True # pragma: no cover 351 queue_name['x'] = True # pragma: no cover
352 352
353 self.mock( 353 self.mock(
354 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run) 354 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run)
355 NextBuildNumberPipeline.run( 355 NextBuildNumberPipeline.run(
(...skipping 25 matching lines...) Expand all
381 self._CreateAndSaveMasterFlakeAnalysis( 381 self._CreateAndSaveMasterFlakeAnalysis(
382 master_name, builder_name, build_number, step_name, 382 master_name, builder_name, build_number, step_name,
383 test_name, status=analysis_status.PENDING 383 test_name, status=analysis_status.PENDING
384 ) 384 )
385 self._CreateAndSaveFlakeSwarmingTask( 385 self._CreateAndSaveFlakeSwarmingTask(
386 master_name, builder_name, build_number, step_name, 386 master_name, builder_name, build_number, step_name,
387 test_name, status=analysis_status.COMPLETED 387 test_name, status=analysis_status.COMPLETED
388 ) 388 )
389 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 389 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
390 build_number, step_name, test_name) 390 build_number, step_name, test_name)
391 analysis.success_rates.append(.50) 391 analysis.pass_rates.append(.50)
392 analysis.build_numbers.append(100) 392 analysis.build_numbers.append(100)
393 analysis.put() 393 analysis.put()
394 394
395 queue_name = {'x': False} 395 queue_name = {'x': False}
396 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument 396 def my_mocked_run(arg1, queue_name): # pylint: disable=unused-argument
397 queue_name['x'] = True # pragma: no cover 397 queue_name['x'] = True # pragma: no cover
398 398
399 self.mock( 399 self.mock(
400 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run) 400 recursive_flake_pipeline.RecursiveFlakePipeline, 'start', my_mocked_run)
401 NextBuildNumberPipeline.run( 401 NextBuildNumberPipeline.run(
402 NextBuildNumberPipeline(), master_name, builder_name, 402 NextBuildNumberPipeline(), master_name, builder_name,
403 master_build_number, build_number, step_name, test_name, 403 master_build_number, build_number, step_name, test_name,
404 test_result_future, queue_name, flakiness_algorithm_results_dict) 404 test_result_future, queue_name, flakiness_algorithm_results_dict)
405 self.assertTrue(queue_name['x']) 405 self.assertTrue(queue_name['x'])
406 406
407 def testGetNextRunSetStableLowerBoundary(self): 407 def testGetNextRunSetStableLowerBoundary(self):
408 master_name = 'm' 408 master_name = 'm'
409 builder_name = 'b' 409 builder_name = 'b'
410 build_number = 100 410 build_number = 100
411 step_name = 's' 411 step_name = 's'
412 test_name = 't' 412 test_name = 't'
413 self._CreateAndSaveMasterFlakeAnalysis( 413 self._CreateAndSaveMasterFlakeAnalysis(
414 master_name, builder_name, build_number, step_name, 414 master_name, builder_name, build_number, step_name,
415 test_name, status=analysis_status.PENDING 415 test_name, status=analysis_status.PENDING
416 ) 416 )
417 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 417 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
418 build_number, step_name, test_name) 418 build_number, step_name, test_name)
419 analysis.success_rates.append(1) 419 analysis.pass_rates.append(1)
420 analysis.build_numbers.append(100) 420 analysis.build_numbers.append(100)
421 analysis.put() 421 analysis.put()
422 422
423 flakiness_algorithm_results_dict = { 423 flakiness_algorithm_results_dict = {
424 'flakes_in_a_row': 4, 424 'flakes_in_a_row': 4,
425 'stable_in_a_row': 0, 425 'stable_in_a_row': 0,
426 'stabled_out': False, 426 'stabled_out': False,
427 'flaked_out': True, 427 'flaked_out': True,
428 'last_build_number': 0, 428 'last_build_number': 0,
429 'lower_boundary': None, 429 'lower_boundary': None,
(...skipping 12 matching lines...) Expand all
442 builder_name = 'b' 442 builder_name = 'b'
443 build_number = 100 443 build_number = 100
444 step_name = 's' 444 step_name = 's'
445 test_name = 't' 445 test_name = 't'
446 self._CreateAndSaveMasterFlakeAnalysis( 446 self._CreateAndSaveMasterFlakeAnalysis(
447 master_name, builder_name, build_number, step_name, 447 master_name, builder_name, build_number, step_name,
448 test_name, status=analysis_status.PENDING 448 test_name, status=analysis_status.PENDING
449 ) 449 )
450 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 450 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
451 build_number, step_name, test_name) 451 build_number, step_name, test_name)
452 analysis.success_rates.append(.5) 452 analysis.pass_rates.append(.5)
453 analysis.build_numbers.append(100) 453 analysis.build_numbers.append(100)
454 analysis.put() 454 analysis.put()
455 455
456 flakiness_algorithm_results_dict = { 456 flakiness_algorithm_results_dict = {
457 'flakes_in_a_row': 0, 457 'flakes_in_a_row': 0,
458 'stable_in_a_row': 0, 458 'stable_in_a_row': 0,
459 'stabled_out': True, 459 'stabled_out': True,
460 'flaked_out': False, 460 'flaked_out': False,
461 'last_build_number': 0, 461 'last_build_number': 0,
462 'lower_boundary': None, 462 'lower_boundary': None,
(...skipping 12 matching lines...) Expand all
475 builder_name = 'b' 475 builder_name = 'b'
476 build_number = 100 476 build_number = 100
477 step_name = 's' 477 step_name = 's'
478 test_name = 't' 478 test_name = 't'
479 self._CreateAndSaveMasterFlakeAnalysis( 479 self._CreateAndSaveMasterFlakeAnalysis(
480 master_name, builder_name, build_number, step_name, 480 master_name, builder_name, build_number, step_name,
481 test_name, status=analysis_status.PENDING 481 test_name, status=analysis_status.PENDING
482 ) 482 )
483 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 483 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
484 build_number, step_name, test_name) 484 build_number, step_name, test_name)
485 analysis.success_rates.append(.5) 485 analysis.pass_rates.append(.5)
486 analysis.build_numbers.append(100) 486 analysis.build_numbers.append(100)
487 analysis.put() 487 analysis.put()
488 488
489 flakiness_algorithm_results_dict = { 489 flakiness_algorithm_results_dict = {
490 'flakes_in_a_row': 0, 490 'flakes_in_a_row': 0,
491 'stable_in_a_row': 0, 491 'stable_in_a_row': 0,
492 'stabled_out': True, 492 'stabled_out': True,
493 'flaked_out': True, 493 'flaked_out': True,
494 'last_build_number': 0, 494 'last_build_number': 0,
495 'lower_boundary': 100, 495 'lower_boundary': 100,
496 'upper_boundary': 110, 496 'upper_boundary': 110,
497 'lower_boundary_result': 'STABLE', 497 'lower_boundary_result': 'STABLE',
498 'sequential_run_index': 0 498 'sequential_run_index': 0
499 } 499 }
500 next_run = sequential_next_run(analysis, flakiness_algorithm_results_dict) 500 next_run = sequential_next_run(analysis, flakiness_algorithm_results_dict)
501 self.assertEqual(next_run, 101) 501 self.assertEqual(next_run, 101)
502 502
503 def testSequentialFoundBorderFlake(self): 503 def testSequentialFoundBorderFlake(self):
504 master_name = 'm' 504 master_name = 'm'
505 builder_name = 'b' 505 builder_name = 'b'
506 build_number = 100 506 build_number = 100
507 step_name = 's' 507 step_name = 's'
508 test_name = 't' 508 test_name = 't'
509 self._CreateAndSaveMasterFlakeAnalysis( 509 self._CreateAndSaveMasterFlakeAnalysis(
510 master_name, builder_name, build_number, step_name, 510 master_name, builder_name, build_number, step_name,
511 test_name, status=analysis_status.PENDING 511 test_name, status=analysis_status.PENDING
512 ) 512 )
513 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 513 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
514 build_number, step_name, test_name) 514 build_number, step_name, test_name)
515 analysis.success_rates.append(.5) 515 analysis.pass_rates.append(.5)
516 analysis.build_numbers.append(100) 516 analysis.build_numbers.append(100)
517 analysis.put() 517 analysis.put()
518 518
519 flakiness_algorithm_results_dict = { 519 flakiness_algorithm_results_dict = {
520 'flakes_in_a_row': 0, 520 'flakes_in_a_row': 0,
521 'stable_in_a_row': 0, 521 'stable_in_a_row': 0,
522 'stabled_out': True, 522 'stabled_out': True,
523 'flaked_out': True, 523 'flaked_out': True,
524 'last_build_number': 0, 524 'last_build_number': 0,
525 'lower_boundary': 100, 525 'lower_boundary': 100,
(...skipping 10 matching lines...) Expand all
536 builder_name = 'b' 536 builder_name = 'b'
537 build_number = 100 537 build_number = 100
538 step_name = 's' 538 step_name = 's'
539 test_name = 't' 539 test_name = 't'
540 self._CreateAndSaveMasterFlakeAnalysis( 540 self._CreateAndSaveMasterFlakeAnalysis(
541 master_name, builder_name, build_number, step_name, 541 master_name, builder_name, build_number, step_name,
542 test_name, status=analysis_status.PENDING 542 test_name, status=analysis_status.PENDING
543 ) 543 )
544 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 544 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
545 build_number, step_name, test_name) 545 build_number, step_name, test_name)
546 analysis.success_rates.append(1) 546 analysis.pass_rates.append(1)
547 analysis.build_numbers.append(100) 547 analysis.build_numbers.append(100)
548 analysis.put() 548 analysis.put()
549 549
550 flakiness_algorithm_results_dict = { 550 flakiness_algorithm_results_dict = {
551 'flakes_in_a_row': 0, 551 'flakes_in_a_row': 0,
552 'stable_in_a_row': 0, 552 'stable_in_a_row': 0,
553 'stabled_out': True, 553 'stabled_out': True,
554 'flaked_out': True, 554 'flaked_out': True,
555 'last_build_number': 0, 555 'last_build_number': 0,
556 'lower_boundary': 100, 556 'lower_boundary': 100,
(...skipping 11 matching lines...) Expand all
568 builder_name = 'b' 568 builder_name = 'b'
569 build_number = 100 569 build_number = 100
570 step_name = 's' 570 step_name = 's'
571 test_name = 't' 571 test_name = 't'
572 self._CreateAndSaveMasterFlakeAnalysis( 572 self._CreateAndSaveMasterFlakeAnalysis(
573 master_name, builder_name, build_number, step_name, 573 master_name, builder_name, build_number, step_name,
574 test_name, status=analysis_status.PENDING 574 test_name, status=analysis_status.PENDING
575 ) 575 )
576 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 576 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
577 build_number, step_name, test_name) 577 build_number, step_name, test_name)
578 analysis.success_rates.append(1) 578 analysis.pass_rates.append(1)
579 analysis.build_numbers.append(100) 579 analysis.build_numbers.append(100)
580 analysis.put() 580 analysis.put()
581 581
582 flakiness_algorithm_results_dict = { 582 flakiness_algorithm_results_dict = {
583 'flakes_in_a_row': 0, 583 'flakes_in_a_row': 0,
584 'stable_in_a_row': 0, 584 'stable_in_a_row': 0,
585 'stabled_out': True, 585 'stabled_out': True,
586 'flaked_out': True, 586 'flaked_out': True,
587 'last_build_number': 0, 587 'last_build_number': 0,
588 'lower_boundary': 100, 588 'lower_boundary': 100,
(...skipping 29 matching lines...) Expand all
618 self._CreateAndSaveMasterFlakeAnalysis( 618 self._CreateAndSaveMasterFlakeAnalysis(
619 master_name, builder_name, build_number, step_name, 619 master_name, builder_name, build_number, step_name,
620 test_name, status=analysis_status.PENDING 620 test_name, status=analysis_status.PENDING
621 ) 621 )
622 self._CreateAndSaveFlakeSwarmingTask( 622 self._CreateAndSaveFlakeSwarmingTask(
623 master_name, builder_name, build_number, step_name, 623 master_name, builder_name, build_number, step_name,
624 test_name, status=analysis_status.COMPLETED 624 test_name, status=analysis_status.COMPLETED
625 ) 625 )
626 analysis = MasterFlakeAnalysis.Get(master_name, builder_name, 626 analysis = MasterFlakeAnalysis.Get(master_name, builder_name,
627 build_number, step_name, test_name) 627 build_number, step_name, test_name)
628 analysis.success_rates.append(1) 628 analysis.pass_rates.append(1)
629 analysis.build_numbers.append(50) 629 analysis.build_numbers.append(50)
630 analysis.put() 630 analysis.put()
631 631
632 NextBuildNumberPipeline.run( 632 NextBuildNumberPipeline.run(
633 NextBuildNumberPipeline(), master_name, builder_name, 633 NextBuildNumberPipeline(), master_name, builder_name,
634 master_build_number, build_number, step_name, test_name, 634 master_build_number, build_number, step_name, test_name,
635 test_result_future, queue_name, flakiness_algorithm_results_dict) 635 test_result_future, queue_name, flakiness_algorithm_results_dict)
636 self.assertEquals( 636 self.assertEquals(
637 flakiness_algorithm_results_dict['sequential_run_index'], 1) 637 flakiness_algorithm_results_dict['sequential_run_index'], 1)
638 638
639 def testNextBuildWhenTestNotExistingAfterStableInARow(self): 639 def testNextBuildWhenTestNotExistingAfterStableInARow(self):
640 master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't') 640 master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't')
641 master.success_rates = [0.8, 1.0, 1.0, -1] 641 master.pass_rates = [0.8, 1.0, 1.0, -1]
642 master.build_numbers = [100, 80, 70, 60] 642 master.build_numbers = [100, 80, 70, 60]
643 flakiness_algorithm_results_dict = { 643 flakiness_algorithm_results_dict = {
644 'flakes_in_a_row': 0, 644 'flakes_in_a_row': 0,
645 'stable_in_a_row': 2, 645 'stable_in_a_row': 2,
646 'stabled_out': False, 646 'stabled_out': False,
647 'flaked_out': False, 647 'flaked_out': False,
648 'last_build_number': 0, 648 'last_build_number': 0,
649 'lower_boundary': None, 649 'lower_boundary': None,
650 'upper_boundary': None, 650 'upper_boundary': None,
651 'lower_boundary_result': None, 651 'lower_boundary_result': None,
652 'sequential_run_index': 0, 652 'sequential_run_index': 0,
653 } 653 }
654 654
655 next_run = get_next_run(master, flakiness_algorithm_results_dict) 655 next_run = get_next_run(master, flakiness_algorithm_results_dict)
656 self.assertEqual(81, next_run) 656 self.assertEqual(81, next_run)
657 self.assertTrue(flakiness_algorithm_results_dict['stabled_out']) 657 self.assertTrue(flakiness_algorithm_results_dict['stabled_out'])
658 self.assertTrue(flakiness_algorithm_results_dict['flaked_out']) 658 self.assertTrue(flakiness_algorithm_results_dict['flaked_out'])
659 self.assertEqual(80, flakiness_algorithm_results_dict['lower_boundary']) 659 self.assertEqual(80, flakiness_algorithm_results_dict['lower_boundary'])
660 self.assertEqual('STABLE', 660 self.assertEqual('STABLE',
661 flakiness_algorithm_results_dict['lower_boundary_result']) 661 flakiness_algorithm_results_dict['lower_boundary_result'])
662 662
663 def testNextBuildWhenTestNotExistingAfterFlakeInARow(self): 663 def testNextBuildWhenTestNotExistingAfterFlakeInARow(self):
664 master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't') 664 master = MasterFlakeAnalysis.Create('m', 'b', 100, 's', 't')
665 master.success_rates = [0.8, 0.7, 0.75, -1] 665 master.pass_rates = [0.8, 0.7, 0.75, -1]
666 master.build_numbers = [100, 80, 70, 60] 666 master.build_numbers = [100, 80, 70, 60]
667 flakiness_algorithm_results_dict = { 667 flakiness_algorithm_results_dict = {
668 'flakes_in_a_row': 3, 668 'flakes_in_a_row': 3,
669 'stable_in_a_row': 0, 669 'stable_in_a_row': 0,
670 'stabled_out': False, 670 'stabled_out': False,
671 'flaked_out': False, 671 'flaked_out': False,
672 'last_build_number': 0, 672 'last_build_number': 0,
673 'lower_boundary': None, 673 'lower_boundary': None,
674 'upper_boundary': None, 674 'upper_boundary': None,
675 'lower_boundary_result': None, 675 'lower_boundary_result': None,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 master_name, builder_name, master_build_number, step_name, 708 master_name, builder_name, master_build_number, step_name,
709 test_name, status=analysis_status.RUNNING 709 test_name, status=analysis_status.RUNNING
710 ) 710 )
711 self._CreateAndSaveFlakeSwarmingTask( 711 self._CreateAndSaveFlakeSwarmingTask(
712 master_name, builder_name, build_number, step_name, 712 master_name, builder_name, build_number, step_name,
713 test_name, status=analysis_status.COMPLETED 713 test_name, status=analysis_status.COMPLETED
714 ) 714 )
715 analysis = MasterFlakeAnalysis.Get( 715 analysis = MasterFlakeAnalysis.Get(
716 master_name, builder_name, 716 master_name, builder_name,
717 master_build_number, step_name, test_name) 717 master_build_number, step_name, test_name)
718 analysis.success_rates = [1.0, 1.0, 1.0, -1] 718 analysis.pass_rates = [1.0, 1.0, 1.0, -1]
719 analysis.build_numbers = [100, 80, 70, 60] 719 analysis.build_numbers = [100, 80, 70, 60]
720 analysis.put() 720 analysis.put()
721 721
722 pipeline = NextBuildNumberPipeline() 722 pipeline = NextBuildNumberPipeline()
723 pipeline.run( 723 pipeline.run(
724 master_name, builder_name, 724 master_name, builder_name,
725 master_build_number, build_number, step_name, test_name, 725 master_build_number, build_number, step_name, test_name,
726 test_result_future, queue_name, flakiness_algorithm_results_dict) 726 test_result_future, queue_name, flakiness_algorithm_results_dict)
727 727
728 analysis = MasterFlakeAnalysis.Get( 728 analysis = MasterFlakeAnalysis.Get(
(...skipping 25 matching lines...) Expand all
754 master_name, builder_name, master_build_number, step_name, 754 master_name, builder_name, master_build_number, step_name,
755 test_name, status=analysis_status.RUNNING 755 test_name, status=analysis_status.RUNNING
756 ) 756 )
757 self._CreateAndSaveFlakeSwarmingTask( 757 self._CreateAndSaveFlakeSwarmingTask(
758 master_name, builder_name, build_number, step_name, 758 master_name, builder_name, build_number, step_name,
759 test_name, status=analysis_status.COMPLETED 759 test_name, status=analysis_status.COMPLETED
760 ) 760 )
761 analysis = MasterFlakeAnalysis.Get( 761 analysis = MasterFlakeAnalysis.Get(
762 master_name, builder_name, 762 master_name, builder_name,
763 master_build_number, step_name, test_name) 763 master_build_number, step_name, test_name)
764 analysis.success_rates = [1.0, 1.0, 1.0, 1.0] 764 analysis.pass_rates = [1.0, 1.0, 1.0, 1.0]
765 analysis.build_numbers = [100, 80, 70, 60] 765 analysis.build_numbers = [100, 80, 70, 60]
766 analysis.put() 766 analysis.put()
767 767
768 pipeline = NextBuildNumberPipeline() 768 pipeline = NextBuildNumberPipeline()
769 pipeline.run( 769 pipeline.run(
770 master_name, builder_name, 770 master_name, builder_name,
771 master_build_number, build_number, step_name, test_name, 771 master_build_number, build_number, step_name, test_name,
772 test_result_future, queue_name, flakiness_algorithm_results_dict) 772 test_result_future, queue_name, flakiness_algorithm_results_dict)
773 773
774 analysis = MasterFlakeAnalysis.Get( 774 analysis = MasterFlakeAnalysis.Get(
775 master_name, builder_name, 775 master_name, builder_name,
776 master_build_number, step_name, test_name) 776 master_build_number, step_name, test_name)
777 self.assertEqual(analysis_status.COMPLETED, analysis.status) 777 self.assertEqual(analysis_status.COMPLETED, analysis.status)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698