Revision 1b5150ab
b/test/ganeti.jqueue_unittest.py | ||
---|---|---|
1858 | 1858 |
self.assertRaises(IndexError, self.queue.GetNextUpdate) |
1859 | 1859 |
|
1860 | 1860 |
|
1861 |
class TestJobDependencyManager(unittest.TestCase): |
|
1862 |
class _FakeJob: |
|
1863 |
def __init__(self, job_id): |
|
1864 |
self.id = str(job_id) |
|
1861 |
class _IdOnlyFakeJob: |
|
1862 |
def __init__(self, job_id, priority=NotImplemented): |
|
1863 |
self.id = str(job_id) |
|
1864 |
self._priority = priority |
|
1865 |
|
|
1866 |
def CalcPriority(self): |
|
1867 |
return self._priority |
|
1865 | 1868 |
|
1869 |
|
|
1870 |
class TestJobDependencyManager(unittest.TestCase): |
|
1866 | 1871 |
def setUp(self): |
1867 | 1872 |
self._status = [] |
1868 | 1873 |
self._queue = [] |
... | ... | |
1877 | 1882 |
self._queue.append(jobs) |
1878 | 1883 |
|
1879 | 1884 |
def testNotFinalizedThenCancel(self): |
1880 |
job = self._FakeJob(17697)
|
|
1885 |
job = _IdOnlyFakeJob(17697)
|
|
1881 | 1886 |
job_id = str(28625) |
1882 | 1887 |
|
1883 | 1888 |
self._status.append((job_id, constants.JOB_STATUS_RUNNING)) |
... | ... | |
1902 | 1907 |
self.assertFalse(self.jdm.GetLockInfo([query.LQ_PENDING])) |
1903 | 1908 |
|
1904 | 1909 |
def testRequireCancel(self): |
1905 |
job = self._FakeJob(5278)
|
|
1910 |
job = _IdOnlyFakeJob(5278)
|
|
1906 | 1911 |
job_id = str(9610) |
1907 | 1912 |
dep_status = [constants.JOB_STATUS_CANCELED] |
1908 | 1913 |
|
... | ... | |
1928 | 1933 |
self.assertFalse(self.jdm.GetLockInfo([query.LQ_PENDING])) |
1929 | 1934 |
|
1930 | 1935 |
def testRequireError(self): |
1931 |
job = self._FakeJob(21459)
|
|
1936 |
job = _IdOnlyFakeJob(21459)
|
|
1932 | 1937 |
job_id = str(25519) |
1933 | 1938 |
dep_status = [constants.JOB_STATUS_ERROR] |
1934 | 1939 |
|
... | ... | |
1954 | 1959 |
dep_status = list(constants.JOBS_FINALIZED) |
1955 | 1960 |
|
1956 | 1961 |
for end_status in dep_status: |
1957 |
job = self._FakeJob(21343)
|
|
1962 |
job = _IdOnlyFakeJob(21343)
|
|
1958 | 1963 |
job_id = str(14609) |
1959 | 1964 |
|
1960 | 1965 |
self._status.append((job_id, constants.JOB_STATUS_WAITING)) |
... | ... | |
1979 | 1984 |
self.assertFalse(self.jdm.GetLockInfo([query.LQ_PENDING])) |
1980 | 1985 |
|
1981 | 1986 |
def testNotify(self): |
1982 |
job = self._FakeJob(8227)
|
|
1987 |
job = _IdOnlyFakeJob(8227)
|
|
1983 | 1988 |
job_id = str(4113) |
1984 | 1989 |
|
1985 | 1990 |
self._status.append((job_id, constants.JOB_STATUS_RUNNING)) |
... | ... | |
1999 | 2004 |
self.assertEqual(self._queue, [set([job])]) |
2000 | 2005 |
|
2001 | 2006 |
def testWrongStatus(self): |
2002 |
job = self._FakeJob(10102)
|
|
2007 |
job = _IdOnlyFakeJob(10102)
|
|
2003 | 2008 |
job_id = str(1271) |
2004 | 2009 |
|
2005 | 2010 |
self._status.append((job_id, constants.JOB_STATUS_QUEUED)) |
... | ... | |
2022 | 2027 |
self.assertFalse(self.jdm.JobWaiting(job)) |
2023 | 2028 |
|
2024 | 2029 |
def testCorrectStatus(self): |
2025 |
job = self._FakeJob(24273)
|
|
2030 |
job = _IdOnlyFakeJob(24273)
|
|
2026 | 2031 |
job_id = str(23885) |
2027 | 2032 |
|
2028 | 2033 |
self._status.append((job_id, constants.JOB_STATUS_QUEUED)) |
... | ... | |
2045 | 2050 |
self.assertFalse(self.jdm.JobWaiting(job)) |
2046 | 2051 |
|
2047 | 2052 |
def testFinalizedRightAway(self): |
2048 |
job = self._FakeJob(224)
|
|
2053 |
job = _IdOnlyFakeJob(224)
|
|
2049 | 2054 |
job_id = str(3081) |
2050 | 2055 |
|
2051 | 2056 |
self._status.append((job_id, constants.JOB_STATUS_SUCCESS)) |
... | ... | |
2072 | 2077 |
job_ids = map(str, rnd.sample(range(1, 10000), 150)) |
2073 | 2078 |
|
2074 | 2079 |
waiters = dict((job_ids.pop(), |
2075 |
set(map(self._FakeJob,
|
|
2080 |
set(map(_IdOnlyFakeJob,
|
|
2076 | 2081 |
[job_ids.pop() |
2077 | 2082 |
for _ in range(rnd.randint(1, 20))]))) |
2078 | 2083 |
for _ in range(10)) |
... | ... | |
2132 | 2137 |
assert not waiters |
2133 | 2138 |
|
2134 | 2139 |
def testSelfDependency(self): |
2135 |
job = self._FakeJob(18937)
|
|
2140 |
job = _IdOnlyFakeJob(18937)
|
|
2136 | 2141 |
|
2137 | 2142 |
self._status.append((job.id, constants.JOB_STATUS_SUCCESS)) |
2138 | 2143 |
(result, _) = self.jdm.CheckAndRegister(job, job.id, []) |
2139 | 2144 |
self.assertEqual(result, self.jdm.ERROR) |
2140 | 2145 |
|
2141 | 2146 |
def testJobDisappears(self): |
2142 |
job = self._FakeJob(30540)
|
|
2147 |
job = _IdOnlyFakeJob(30540)
|
|
2143 | 2148 |
job_id = str(23769) |
2144 | 2149 |
|
2145 | 2150 |
def _FakeStatus(_): |
Also available in: Unified diff