def test_group_all_by_test(self): """ Tests that summarize_by() correctly accumulates all unique combinations of (test,). """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by(test_failures.Report.TEST) self.assertEqual(2, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( task=test_failures.Wildcard("tasks"), variant=test_failures.Wildcard("variants"), distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 17), num_pass=3, num_fail=3, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 10), end_date=datetime.date(2017, 6, 10), num_pass=1, num_fail=0, ))
def test_group_weekly_by_test_starting_on_date(self): """ Tests that summarize_by() correctly accumulates by week when the beginning of the week is specified as a datetime.date() value. """ date = datetime.date(2017, 6, 7) self.assertEqual(2, date.weekday(), "2017 Jun 07 is a Wednesday") report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by( test_failures.Report.TEST, time_period=test_failures.Report.WEEKLY, start_day_of_week=date) self.assertEqual(4, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( task=test_failures.Wildcard("tasks"), start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 6), num_pass=1, num_fail=1, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 7), end_date=datetime.date(2017, 6, 13), num_pass=2, num_fail=1, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 14), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[3], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 7), end_date=datetime.date(2017, 6, 13), num_pass=1, num_fail=0, ))
def test_group_weekly_by_test_starting_on_monday(self): """ Tests that summarize_by() correctly accumulates by week when the beginning of the week is specified as the string "monday". """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by( test_failures.Report.TEST, time_period=test_failures.Report.WEEKLY, start_day_of_week=test_failures.Report.MONDAY) self.assertEqual(4, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 4), num_pass=1, num_fail=0, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( task=test_failures.Wildcard("tasks"), distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 5), end_date=datetime.date(2017, 6, 11), num_pass=2, num_fail=2, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 12), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[3], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 5), end_date=datetime.date(2017, 6, 11), num_pass=1, num_fail=0, ))
def test_group_4days_by_test(self): """ Tests that summarize_by() correctly accumulates by multiple days. """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by( test_failures.Report.TEST, time_period=datetime.timedelta(days=4)) self.assertEqual(4, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( task=test_failures.Wildcard("tasks"), start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 6), num_pass=1, num_fail=1, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 7), end_date=datetime.date(2017, 6, 10), num_pass=2, num_fail=1, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 15), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[3], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 7), end_date=datetime.date(2017, 6, 10), num_pass=1, num_fail=0, ))
def test_group_all_by_variant_task(self): """ Tests that summarize_by() correctly accumulates all unique combinations of (variant, task). """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by(["variant", "task"]) self.assertEqual(3, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( task="jsCore", start_date=datetime.date(2017, 6, 5), end_date=datetime.date(2017, 6, 5), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( test=test_failures.Wildcard("tests"), distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 10), num_pass=4, num_fail=1, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 17), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, ))
def test_group_all_by_test_task_variant(self): """ Tests that summarize_by() correctly accumulates all unique combinations of (test, task, variant). """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by( test_failures.Report.TEST_TASK_VARIANT) self.assertEqual(4, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( task="jsCore", start_date=datetime.date(2017, 6, 5), end_date=datetime.date(2017, 6, 5), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 10), num_pass=3, num_fail=1, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 17), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[3], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 10), end_date=datetime.date(2017, 6, 10), num_pass=1, num_fail=0, ))
def test_group_daily_by_test(self): """ Tests that summarize_by() correctly accumulates by day. """ report = test_failures.Report(self.ENTRIES) summed_entries = report.summarize_by( test_failures.Report.TEST, time_period=test_failures.Report.DAILY) self.assertEqual(6, len(summed_entries)) self.assertEqual( summed_entries[0], self.ENTRY._replace( start_date=datetime.date(2017, 6, 3), end_date=datetime.date(2017, 6, 3), num_pass=1, num_fail=0, )) self.assertEqual( summed_entries[1], self.ENTRY._replace( task="jsCore", start_date=datetime.date(2017, 6, 5), end_date=datetime.date(2017, 6, 5), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[2], self.ENTRY._replace( start_date=datetime.date(2017, 6, 9), end_date=datetime.date(2017, 6, 9), num_pass=1, num_fail=0, )) self.assertEqual( summed_entries[3], self.ENTRY._replace( distro=test_failures.Wildcard("distros"), start_date=datetime.date(2017, 6, 10), end_date=datetime.date(2017, 6, 10), num_pass=1, num_fail=1, )) self.assertEqual( summed_entries[4], self.ENTRY._replace( variant="linux-64-debug", start_date=datetime.date(2017, 6, 17), end_date=datetime.date(2017, 6, 17), num_pass=0, num_fail=1, )) self.assertEqual( summed_entries[5], self.ENTRY._replace( test="jstests/core/all2.js", start_date=datetime.date(2017, 6, 10), end_date=datetime.date(2017, 6, 10), num_pass=1, num_fail=0, ))