def GetFlake(luci_project, original_step_name, original_test_name, master_name, builder_name, build_number): """Returns an existing Flake or creates one as needed. Args: luci_project (str): The project being analyzed, e.g. 'chromium'. original_step_name (str): The original step name which may contain hardware information and 'with(out) patch' etc. suffixes. original_test_name (str): The original test name. master_name (str): Master name of the build of the step. builder_name (str): Builder name of the build of the step. build_number (int): Build number of the build of the step. """ normalized_step_name = Flake.LegacyNormalizeStepName( original_step_name, master_name, builder_name, build_number) normalized_test_name = Flake.NormalizeTestName(original_test_name, original_step_name) flake = Flake.Get(luci_project, normalized_step_name, normalized_test_name) if not flake: # pragma: no branch label = Flake.GetTestLabelName(original_test_name, original_step_name) flake = Flake.Create(luci_project, normalized_step_name, normalized_test_name, label) flake.put() return flake
def testLegacyNormalizeStepName(self, mocked_get_isolate_target_name, mocked_get_canonical_step_name): self.assertEqual( 'isolate_target_name', Flake.LegacyNormalizeStepName( step_name='step_name (with patch) on Android', master_name='m', builder_name='b', build_number=200))
def testLegacyNormalizeStepNameForWebkitLayoutTests( self, mocked_get_isolate_target_name, mocked_get_canonical_step_name): self.assertEqual( 'webkit_layout_tests', Flake.LegacyNormalizeStepName( step_name='site_per_process_webkit_layout_tests (with patch)', master_name='m', builder_name='b', build_number=200)) # Assertions have never worked properly because we were using mock 1.0.1. # After rolling to mock 2.0.0, which fixes assertions, these assertions now # fail. https://crbug.com/947753. # mocked_get_isolate_target_name.assert_called_once( # master_name='m', # builder_name='b', # build_number=200, # step_name='step_name (with patch) on Android') mocked_get_canonical_step_name.assert_not_called()
def GetStepName(self): return Flake.LegacyNormalizeStepName( step_name=self._analysis.step_name, master_name=self._analysis.master_name, builder_name=self._analysis.builder_name, build_number=self._analysis.build_number)