Files
mongo/buildscripts/tests/resmokelib/testing/test_queue_element.py

93 lines
3.7 KiB
Python

"""Unit tests for the resmokelib.testing.executor module."""
import unittest
import mock
from buildscripts.resmokelib.testing import queue_element
# pylint: disable=missing-docstring,protected-access
class TestQueueElemRepeatNum(unittest.TestCase):
def test_norequeue(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests = 1
queue_elem = queue_element.QueueElemRepeatNum(None, None, suite_options)
queue_elem.job_completed(1)
self.assertFalse(queue_elem.should_requeue())
def test_requeue(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests = 2
queue_elem = queue_element.QueueElemRepeatNum(None, None, suite_options)
queue_elem.job_completed(1)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(1)
self.assertFalse(queue_elem.should_requeue())
class TestQueueElemRepeatTime(unittest.TestCase):
def test_requeue_time_only(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests_min = None
suite_options.num_repeat_tests_max = None
suite_options.time_repeat_tests_secs = 7
queue_elem = queue_element.QueueElemRepeatTime(None, None, suite_options)
job_time = 3
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertFalse(queue_elem.should_requeue())
def test_should_requeue_time_exact_avg(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests_min = None
suite_options.num_repeat_tests_max = None
suite_options.time_repeat_tests_secs = 9
queue_elem = queue_element.QueueElemRepeatTime(None, None, suite_options)
job_time = 3
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertFalse(queue_elem.should_requeue())
def test_should_requeue_time_with_min(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests_min = 3
suite_options.num_repeat_tests_max = None
suite_options.time_repeat_tests_secs = 5
queue_elem = queue_element.QueueElemRepeatTime(None, None, suite_options)
job_time = 3
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertFalse(queue_elem.should_requeue())
def test_should_requeue_time_with_max(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests_min = None
suite_options.num_repeat_tests_max = 2
suite_options.time_repeat_tests_secs = 10
queue_elem = queue_element.QueueElemRepeatTime(None, None, suite_options)
job_time = 2
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertFalse(queue_elem.should_requeue())
def test_should_requeue_time_with_min_max(self):
suite_options = mock.Mock()
suite_options.num_repeat_tests_min = 1
suite_options.num_repeat_tests_max = 2
suite_options.time_repeat_tests_secs = 10
queue_elem = queue_element.QueueElemRepeatTime(None, None, suite_options)
job_time = 1
queue_elem.job_completed(job_time)
self.assertTrue(queue_elem.should_requeue())
queue_elem.job_completed(job_time)
self.assertFalse(queue_elem.should_requeue())