def test_value_with_results(self): some_branch = Branch.create_if_possible('some-branch', 'Some Branch') some_platform = Platform.create_if_possible('some-platform', 'Some Platform') some_builder = Builder.get(Builder.create('some-builder', 'Some Builder')) results = self._create_results(some_branch, some_platform, some_builder, 'some-test', [50.0, 51.0, 52.0, 49.0, 48.0]) value = Runs(some_branch, some_platform, 'some-test').value() self.assertEqualUnorderedList(value.keys(), ['test_runs', 'averages', 'min', 'max', 'date_range', 'stat']) self.assertEqual(value['stat'], 'ok') self.assertEqual(value['min'], 48.0) self.assertEqual(value['max'], 52.0) self.assertEqual(value['date_range'], None) # date_range is never given self.assertEqual(len(value['test_runs']), len(results)) for i, run in enumerate(value['test_runs']): result = results[i] self.assertEqual(run[0], result.key().id()) self.assertEqual(run[1][1], i) # Build number self.assertEqual(run[1][2], 100 + i) # Revision self.assertEqual(run[1][3], None) # Supplementary revision self.assertEqual(run[3], result.value) self.assertEqual(run[6], some_builder.key().id()) self.assertEqual(run[7], None) # Statistics
def test_generate_runs(self): some_branch = Branch.create_if_possible('some-branch', 'Some Branch') some_platform = Platform.create_if_possible('some-platform', 'Some Platform') some_builder = Builder.get(Builder.create('some-builder', 'Some Builder')) results = self._create_results(some_branch, some_platform, some_builder, 'some-test', [50.0, 51.0, 52.0, 49.0, 48.0]) last_i = 0 for i, (build, result) in enumerate(Runs._generate_runs(some_branch, some_platform, "some-test")): self.assertEqual(build.buildNumber, i) self.assertEqual(build.revision, 100 + i) self.assertEqual(result.name, 'some-test') self.assertEqual(result.value, results[i].value) last_i = i self.assertTrue(last_i + 1, len(results))
def test_run_from_build_and_result(self): branch = Branch.create_if_possible('some-branch', 'Some Branch') platform = Platform.create_if_possible('some-platform', 'Some Platform') builder = Builder.get(Builder.create('some-builder', 'Some Builder')) test_name = ' some-test' def create_build(build_number, revision): timestamp = datetime.now().replace(microsecond=0) build = Build(branch=branch, platform=platform, builder=builder, buildNumber=build_number, revision=revision, timestamp=timestamp) build.put() return build build = create_build(1, 101) result = TestResult(name=test_name, value=123.0, build=build) result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 123.0) build = create_build(2, 102) result = TestResult(name=test_name, value=456.0, valueMedian=789.0, build=build) result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 456.0) result.valueStdev = 7.0 result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 456.0) result.valueStdev = None result.valueMin = 123.0 result.valueMax = 789.0 result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 456.0) result.valueStdev = 8.0 result.valueMin = 123.0 result.valueMax = 789.0 result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 456.0, statistics={'stdev': 8.0, 'min': 123.0, 'max': 789.0}) result.valueMedian = 345.0 # Median is never used by the frontend. result.valueStdev = 8.0 result.valueMin = 123.0 result.valueMax = 789.0 result.put() self._assert_entry(Runs._entry_from_build_and_result(build, result), build, result, 456.0, statistics={'stdev': 8.0, 'min': 123.0, 'max': 789.0})