class TestNightlyHandler(unittest.TestCase): def setUp(self): self.handler = NightlyHandler() @patch('mozregression.bisector.BisectorHandler.initialize') def test_initialize(self, initialize): def get_associated_data(index): return index self.handler.build_range = [Mock(build_date=0), Mock(build_date=1)] self.handler.initialize() # check that members are set self.assertEqual(self.handler.good_date, 0) self.assertEqual(self.handler.bad_date, 1) initialize.assert_called_with(self.handler) @patch('mozregression.bisector.LOG') def test_print_progress(self, logger): log = [] logger.info = log.append self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) new_data = [ Mock(build_date=datetime.date(2014, 11, 15)), Mock(build_date=datetime.date(2014, 11, 20)) ] self.handler._print_progress(new_data) self.assertIn('from [2014-11-10, 2014-11-20] (10 days)', log[0]) self.assertIn('to [2014-11-15, 2014-11-20] (5 days)', log[0]) self.assertIn('2 steps left', log[0]) @patch('mozregression.bisector.LOG') def test_user_exit(self, logger): log = [] logger.info = log.append self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.user_exit(0) self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) @patch('mozregression.bisector.LOG') def test_print_range_without_repo(self, logger): log = [] logger.info = log.append logger.error = log.append self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.print_range() self.assertIn("no pushlog url available", log[0]) self.assertEqual('Newest known good nightly: 2014-11-10', log[1]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[2]) @patch('mozregression.bisector.LOG') def test_print_range_rev_availables(self, logger): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_revision = '2' self.handler.bad_revision = '6' self.handler.good_date = datetime.date(2015, 1, 1) self.handler.bad_date = datetime.date(2015, 1, 2) log = [] logger.info = log.append self.handler.print_range() self.assertEqual(log[0], "Last good revision: 2 (2015-01-01)") self.assertEqual(log[1], "First bad revision: 6 (2015-01-02)") self.assertIn(self.handler.get_pushlog_url(), log[2]) @patch('mozregression.bisector.LOG') def test_print_range_no_rev_availables(self, logger): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) log = [] logger.info = log.append self.handler.print_range() self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) self.assertIn("pushloghtml?startdate=2014-11-10&enddate=2014-11-20", log[2])
class TestNightlyHandler(unittest.TestCase): def setUp(self): self.handler = NightlyHandler() def test_build_infos(self): fetch_config = create_config('fennec-2.3', 'linux', 64) fetch_config.set_nightly_repo('my-repo') def get_associated_data(index): return index new_data = MagicMock(get_associated_data=get_associated_data) self.handler.set_build_data(new_data) result = self.handler.build_infos(1, fetch_config) self.assertEqual(result, { 'build_type': 'nightly', 'build_date': 1, 'app_name': 'fennec', 'repo': 'my-repo' }) @patch('mozregression.bisector.BisectorHandler.initialize') def test_initialize(self, initialize): def get_associated_data(index): return index self.handler.build_data = Mock(get_associated_data=get_associated_data) self.handler.initialize() # check that members are set self.assertEqual(self.handler.good_date, 0) self.assertEqual(self.handler.bad_date, -1) initialize.assert_called_with(self.handler) def test_print_progress(self): log = [] self.handler._logger = Mock(info=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) def get_associated_data(index): if index == 0: return datetime.date(2014, 11, 15) elif index == -1: return datetime.date(2014, 11, 20) new_data = Mock(get_associated_data=get_associated_data) self.handler._print_progress(new_data) self.assertIn('from [2014-11-10, 2014-11-20] (10 days)', log[0]) self.assertIn('to [2014-11-15, 2014-11-20] (5 days)', log[0]) self.assertIn('2 steps left', log[0]) def test_user_exit(self): log = [] self.handler._logger = Mock(info=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.user_exit(0) self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) def test_print_range_without_repo(self): log = [] self.handler._logger = Mock(info=log.append, error=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.print_range() self.assertIn("no pushlog url available", log[0]) self.assertEqual('Newest known good nightly: 2014-11-10', log[1]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[2]) def test_print_range_rev_availables(self): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_revision = '2' self.handler.bad_revision = '6' log = [] self.handler._logger = Mock(info=log.append) self.handler.print_range() self.assertEqual(log[0], "Last good revision: 2") self.assertEqual(log[1], "First bad revision: 6") self.assertIn(self.handler.get_pushlog_url(), log[2]) def test_print_range_no_rev_availables(self): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) log = [] self.handler._logger = Mock(info=log.append) self.handler.print_range() self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) self.assertIn("pushloghtml?startdate=2014-11-10&enddate=2014-11-20", log[2])
class TestNightlyHandler(unittest.TestCase): def setUp(self): self.handler = NightlyHandler() def test_build_infos(self): def get_associated_data(index): return index new_data = MagicMock(get_associated_data=get_associated_data) self.handler.set_build_data(new_data) result = self.handler.build_infos(1) self.assertEqual(result, { 'build_type': 'nightly', 'build_date': 1, }) @patch('mozregression.bisector.BisectorHandler.initialize') def test_initialize(self, initialize): def get_associated_data(index): return index self.handler.build_data = Mock(get_associated_data=get_associated_data) self.handler.initialize() # check that members are set self.assertEqual(self.handler.good_date, 0) self.assertEqual(self.handler.bad_date, -1) initialize.assert_called_with(self.handler) def test_print_progress(self): log = [] self.handler._logger = Mock(info=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) def get_associated_data(index): if index == 0: return datetime.date(2014, 11, 15) elif index == -1: return datetime.date(2014, 11, 20) new_data = Mock(get_associated_data=get_associated_data) self.handler._print_progress(new_data) self.assertIn('from [2014-11-10, 2014-11-20] (10 days)', log[0]) self.assertIn('to [2014-11-15, 2014-11-20] (5 days)', log[0]) self.assertIn('2 steps left', log[0]) def test_user_exit(self): log = [] self.handler._logger = Mock(info=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.user_exit(0) self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) def test_print_range_without_repo(self): log = [] self.handler._logger = Mock(info=log.append, error=log.append) self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) self.handler.print_range() self.assertIn("no pushlog url available", log[0]) self.assertEqual('Newest known good nightly: 2014-11-10', log[1]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[2]) def test_print_range_rev_availables(self): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_revision = '2' self.handler.bad_revision = '6' log = [] self.handler._logger = Mock(info=log.append) self.handler.print_range() self.assertEqual(log[0], "Last good revision: 2") self.assertEqual(log[1], "First bad revision: 6") self.assertIn(self.handler.get_pushlog_url(), log[2]) def test_print_range_no_rev_availables(self): self.handler.found_repo = 'https://hg.mozilla.repo' self.handler.good_date = datetime.date(2014, 11, 10) self.handler.bad_date = datetime.date(2014, 11, 20) log = [] self.handler._logger = Mock(info=log.append) self.handler.print_range() self.assertEqual('Newest known good nightly: 2014-11-10', log[0]) self.assertEqual('Oldest known bad nightly: 2014-11-20', log[1]) self.assertIn("pushloghtml?startdate=2014-11-10&enddate=2014-11-20", log[2])