def test_formula_confirms_non_sheriffed_tests(framework, suite, test, betamax_recorder): fix_ratio = FixRatioFormula(betamax_recorder.session) with betamax_recorder.use_cassette(f'{framework}-{suite}', serialize_with='prettyjson'): assert fix_ratio(framework, suite, test) < 0.3
def handle(self, *args, **options): if options.get('individually'): return self._handle_individually(options) quant_period = options['quantifying_period'] bug_cooldown = options['bug_cooldown'] multiprocessed = options['multiprocessing'] init_params = (None, quant_period, bug_cooldown) formula_map = { 'EngineerTraction': EngineerTractionFormula(*init_params), 'FixRatio': FixRatioFormula(*init_params), } tracker = CriteriaTracker(formula_map, multiprocessed=multiprocessed) tracker.load_records() start = time.time() tracker.update_records() duration = time.time() - start print(f'{self.INITIAL_PROMPT_MSG}', end='') for record in tracker: print(record) print(f"Took {duration:.1f} seconds")
def handle(self, *args, **options): framework = options['framework'] suite = options['suite'] test = options['test'] quant_period = options['quantifying_period'] bug_cooldown = options['bug_cooldown'] init_params = (None, quant_period, bug_cooldown) targetted_test = (framework, suite, test) engineer_traction = EngineerTractionFormula(*init_params) fix_ratio = FixRatioFormula(*init_params) print(f'\r{self.INITIAL_PROMPT_MSG}', end='') compute_start = time.time() eng_traction_result = engineer_traction(*targetted_test) fix_ratio_result = fix_ratio(*targetted_test) compute_duration = time.time() - compute_start # turn into regular percentages eng_traction_result *= 100 fix_ratio_result *= 100 self._display_results(eng_traction_result, fix_ratio_result, framework, suite, test, compute_duration)
def _handle_individually(self, options): framework = options['framework'] suite = options['suite'] test = options['test'] quant_period = options['quantifying_period'] bug_cooldown = options['bug_cooldown'] init_params = (None, quant_period, bug_cooldown) targetted_test = (framework, suite, test) engineer_traction = EngineerTractionFormula(*init_params) fix_ratio = FixRatioFormula(*init_params) print(f'\r{self.INITIAL_PROMPT_MSG}', end='') compute_start = time.time() eng_traction_result = engineer_traction(*targetted_test) fix_ratio_result = fix_ratio(*targetted_test) compute_duration = time.time() - compute_start # turn into regular percentages eng_traction_result *= 100 fix_ratio_result *= 100 # display results (inline) test_moniker = ' '.join(filter(None, (suite, test))) title = f'Perf Sheriffing Criteria for {framework} - {test_moniker}' big_underline = '-' * len(title) # & results headers eng_traction_head = self.ENGINEER_TRACTION.capitalize() fix_ratio_head = self.FIX_RATIO.capitalize() justify_head = self.__get_head_justification(eng_traction_head, fix_ratio_head) # let's update 1st prompt line print(f"\r{' ' * len(self.INITIAL_PROMPT_MSG)}", end='') print( f"\rComputing Perf Sheriffing Criteria... (took {compute_duration:{self.PRECISION}} seconds)" ) # display title print(big_underline) print(title) print(big_underline) # & actual results print( f'{eng_traction_head:<{justify_head}}: {eng_traction_result:{self.PRECISION}}%' ) print( f'{fix_ratio_head:<{justify_head}}: {fix_ratio_result:{self.PRECISION}}%' ) print(big_underline)
def formula_instances() -> List[BugzillaFormula]: return [EngineerTractionFormula(), FixRatioFormula()]