def test_build_by_time(self): """Tests basic build_results with valid parameters (group by time).""" build_args = [ 'testFuzzer_2_fuzzer', ['job'], 'by-time', '2016-10-19', '2016-10-21' ] self.client.raw_query.return_value = _mock_query(*build_args) result = fuzzer_stats.build_results(*build_args) self.assertDictEqual( ast.literal_eval(_read_data_file('by_time_expected.txt')), result)
def test_build_none_results(self): """Tests basic build_results, with bigquery returning None for some columns.""" build_args = ['testFuzzer', None, 'by-fuzzer', '2016-10-20', '2016-10-22'] self.client.raw_query.return_value = _mock_query(*build_args) result = fuzzer_stats.build_results(*build_args) self.assertDictEqual( ast.literal_eval(_read_data_file('by_fuzzer_expected_None.txt')), result)
def test_build_today_results(self): """Tests build_results is caching results from today appropriately.""" test_helpers.patch(self, [ 'handlers.fuzzer_stats._build_old_results', 'handlers.fuzzer_stats._build_todays_results', 'base.utils.utcnow', ]) self.mock._build_old_results.return_value = None self.mock._build_todays_results.return_value = None self.mock.utcnow.return_value = datetime.datetime(2018, 5, 4) date_today = '2018-05-04' build_args = [ 'testFuzzer_2_fuzzer', ['job'], 'by-time', date_today, date_today ] # Test that results from yesterday are cached for a full day. fuzzer_stats.build_results(*build_args) self.mock._build_todays_results.assert_called_with(*build_args) self.assertEqual(0, self.mock._build_old_results.call_count)
def test_build_invalid_params(self): """Tests build_results with invalid/missing params.""" with self.assertRaises(helpers.EarlyExitException): fuzzer_stats.build_results('', '', '', '', '')