Revision 1b5150ab test/ganeti.jqueue_unittest.py

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