示例#1
0
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
示例#2
0
    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()]