summaryrefslogtreecommitdiff
path: root/buildscripts/tests/test_evergreen_burn_in_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/tests/test_evergreen_burn_in_tests.py')
-rw-r--r--buildscripts/tests/test_evergreen_burn_in_tests.py49
1 files changed, 21 insertions, 28 deletions
diff --git a/buildscripts/tests/test_evergreen_burn_in_tests.py b/buildscripts/tests/test_evergreen_burn_in_tests.py
index c64f07befcb..309b7007b1b 100644
--- a/buildscripts/tests/test_evergreen_burn_in_tests.py
+++ b/buildscripts/tests/test_evergreen_burn_in_tests.py
@@ -88,7 +88,8 @@ class TestAcceptance(unittest.TestCase):
@unittest.skipIf(sys.platform.startswith("win"), "not supported on windows")
@patch(ns("write_file"))
- def test_tests_generated_if_a_file_changed(self, write_json_mock):
+ @patch(ns("HistoricTaskData.get_stats_from_s3"))
+ def test_tests_generated_if_a_file_changed(self, get_stats_from_s3_mock, write_json_mock):
"""
Given a git repository with changes,
When burn_in_tests is run,
@@ -108,6 +109,7 @@ class TestAcceptance(unittest.TestCase):
) # yapf: disable
mock_evg_conf = get_evergreen_config("etc/evergreen.yml")
mock_evg_api = MagicMock()
+ get_stats_from_s3_mock.return_value = []
under_test.burn_in("task_id", variant, gen_config, repeat_config, mock_evg_api,
mock_evg_conf, repos, "testfile.json", 'install-dir/bin')
@@ -244,41 +246,30 @@ class TestGenerateTimeouts(unittest.TestCase):
class TestGetTaskRuntimeHistory(unittest.TestCase):
- def test_get_task_runtime_history(self):
- mock_evg_api = MagicMock()
- mock_evg_api.test_stats_by_project.return_value = [
- MagicMock(
- test_file="dir/test2.js",
- task_name="task1",
- variant="variant1",
- distro="distro1",
- date=datetime.utcnow().date(),
+ @patch(ns("HistoricTaskData.get_stats_from_s3"))
+ def test_get_task_runtime_history(self, get_stats_from_s3_mock):
+ test_stats = [
+ teststats_utils.HistoricalTestInformation(
+ test_name="dir/test2.js",
num_pass=1,
num_fail=0,
avg_duration_pass=10.1,
)
]
- analysis_duration = under_test.AVG_TEST_RUNTIME_ANALYSIS_DAYS
- end_date = datetime.utcnow().replace(microsecond=0)
- start_date = end_date - timedelta(days=analysis_duration)
+ get_stats_from_s3_mock.return_value = test_stats
mock_gen_config = MagicMock(project="project1", build_variant="variant1")
- executor = under_test.GenerateBurnInExecutor(mock_gen_config, MagicMock(), mock_evg_api,
- history_end_date=end_date)
+ executor = under_test.GenerateBurnInExecutor(mock_gen_config, MagicMock())
result = executor.get_task_runtime_history("task1")
self.assertEqual(result, [("dir/test2.js", 10.1)])
- mock_evg_api.test_stats_by_project.assert_called_with(
- "project1", after_date=start_date, before_date=end_date, group_by="test",
- group_num_days=14, tasks=["task1"], variants=["variant1"])
- def test_get_task_runtime_history_evg_degraded_mode_error(self):
- mock_response = MagicMock(status_code=requests.codes.SERVICE_UNAVAILABLE)
- mock_evg_api = MagicMock()
- mock_evg_api.test_stats_by_project.side_effect = requests.HTTPError(response=mock_response)
+ @patch(ns("HistoricTaskData.get_stats_from_s3"))
+ def test_get_task_runtime_history_when_s3_has_no_data(self, get_stats_from_s3_mock):
+ get_stats_from_s3_mock.return_value = []
mock_gen_config = MagicMock(project="project1", build_variant="variant1")
- executor = under_test.GenerateBurnInExecutor(mock_gen_config, MagicMock(), mock_evg_api)
+ executor = under_test.GenerateBurnInExecutor(mock_gen_config, MagicMock())
result = executor.get_task_runtime_history("task1")
self.assertEqual(result, [])
@@ -324,7 +315,8 @@ class TestCreateGenerateTasksConfig(unittest.TestCase):
self.assertEqual(0, len(evg_config_dict["tasks"]))
@unittest.skipIf(sys.platform.startswith("win"), "not supported on windows")
- def test_one_task_one_test(self):
+ @patch(ns("HistoricTaskData.get_stats_from_s3"))
+ def test_one_task_one_test(self, get_stats_from_s3_mock):
n_tasks = 1
n_tests = 1
resmoke_options = "options for resmoke"
@@ -334,6 +326,7 @@ class TestCreateGenerateTasksConfig(unittest.TestCase):
repeat_config.generate_resmoke_options.return_value = resmoke_options
mock_evg_api = MagicMock()
tests_by_task = create_tests_by_task_mock(n_tasks, n_tests)
+ get_stats_from_s3_mock.return_value = []
executor = under_test.GenerateBurnInExecutor(gen_config, repeat_config, mock_evg_api)
executor.add_config_for_build_variant(build_variant, tests_by_task)
@@ -348,7 +341,8 @@ class TestCreateGenerateTasksConfig(unittest.TestCase):
self.assertIn("tests_0", cmd[1]["vars"]["resmoke_args"])
@unittest.skipIf(sys.platform.startswith("win"), "not supported on windows")
- def test_n_task_m_test(self):
+ @patch(ns("HistoricTaskData.get_stats_from_s3"))
+ def test_n_task_m_test(self, get_stats_from_s3_mock):
n_tasks = 3
n_tests = 5
build_variant = BuildVariant("build variant")
@@ -356,6 +350,7 @@ class TestCreateGenerateTasksConfig(unittest.TestCase):
repeat_config = MagicMock()
tests_by_task = create_tests_by_task_mock(n_tasks, n_tests)
mock_evg_api = MagicMock()
+ get_stats_from_s3_mock.return_value = []
executor = under_test.GenerateBurnInExecutor(gen_config, repeat_config, mock_evg_api)
executor.add_config_for_build_variant(build_variant, tests_by_task)
@@ -372,14 +367,12 @@ class TestCreateGenerateTasksFile(unittest.TestCase):
gen_config = MagicMock(require_multiversion=False)
repeat_config = MagicMock()
tests_by_task = MagicMock()
- mock_evg_api = MagicMock()
validate_mock.return_value = False
exit_mock.side_effect = ValueError("exiting")
with self.assertRaises(ValueError):
- executor = under_test.GenerateBurnInExecutor(gen_config, repeat_config, mock_evg_api,
- "gen_file.json")
+ executor = under_test.GenerateBurnInExecutor(gen_config, repeat_config, "gen_file.json")
executor.execute(tests_by_task)
exit_mock.assert_called_once()