Revision 79d22269 test/ganeti.utils_unittest.py
b/test/ganeti.utils_unittest.py | ||
---|---|---|
1995 | 1995 |
self.assert_(os.path.isdir(path)) |
1996 | 1996 |
|
1997 | 1997 |
|
1998 |
class TestRetry(testutils.GanetiTestCase): |
|
1999 |
def setUp(self): |
|
2000 |
testutils.GanetiTestCase.setUp(self) |
|
2001 |
self.retries = 0 |
|
2002 |
|
|
2003 |
@staticmethod |
|
2004 |
def _RaiseRetryAgain(): |
|
2005 |
raise utils.RetryAgain() |
|
2006 |
|
|
2007 |
@staticmethod |
|
2008 |
def _RaiseRetryAgainWithArg(args): |
|
2009 |
raise utils.RetryAgain(*args) |
|
2010 |
|
|
2011 |
def _WrongNestedLoop(self): |
|
2012 |
return utils.Retry(self._RaiseRetryAgain, 0.01, 0.02) |
|
2013 |
|
|
2014 |
def _RetryAndSucceed(self, retries): |
|
2015 |
if self.retries < retries: |
|
2016 |
self.retries += 1 |
|
2017 |
raise utils.RetryAgain() |
|
2018 |
else: |
|
2019 |
return True |
|
2020 |
|
|
2021 |
def testRaiseTimeout(self): |
|
2022 |
self.failUnlessRaises(utils.RetryTimeout, utils.Retry, |
|
2023 |
self._RaiseRetryAgain, 0.01, 0.02) |
|
2024 |
self.failUnlessRaises(utils.RetryTimeout, utils.Retry, |
|
2025 |
self._RetryAndSucceed, 0.01, 0, args=[1]) |
|
2026 |
self.failUnlessEqual(self.retries, 1) |
|
2027 |
|
|
2028 |
def testComplete(self): |
|
2029 |
self.failUnlessEqual(utils.Retry(lambda: True, 0, 1), True) |
|
2030 |
self.failUnlessEqual(utils.Retry(self._RetryAndSucceed, 0, 1, args=[2]), |
|
2031 |
True) |
|
2032 |
self.failUnlessEqual(self.retries, 2) |
|
2033 |
|
|
2034 |
def testNestedLoop(self): |
|
2035 |
try: |
|
2036 |
self.failUnlessRaises(errors.ProgrammerError, utils.Retry, |
|
2037 |
self._WrongNestedLoop, 0, 1) |
|
2038 |
except utils.RetryTimeout: |
|
2039 |
self.fail("Didn't detect inner loop's exception") |
|
2040 |
|
|
2041 |
def testTimeoutArgument(self): |
|
2042 |
retry_arg="my_important_debugging_message" |
|
2043 |
try: |
|
2044 |
utils.Retry(self._RaiseRetryAgainWithArg, 0.01, 0.02, args=[[retry_arg]]) |
|
2045 |
except utils.RetryTimeout, err: |
|
2046 |
self.failUnlessEqual(err.args, (retry_arg, )) |
|
2047 |
else: |
|
2048 |
self.fail("Expected timeout didn't happen") |
|
2049 |
|
|
2050 |
def testRaiseInnerWithExc(self): |
|
2051 |
retry_arg="my_important_debugging_message" |
|
2052 |
try: |
|
2053 |
try: |
|
2054 |
utils.Retry(self._RaiseRetryAgainWithArg, 0.01, 0.02, |
|
2055 |
args=[[errors.GenericError(retry_arg, retry_arg)]]) |
|
2056 |
except utils.RetryTimeout, err: |
|
2057 |
err.RaiseInner() |
|
2058 |
else: |
|
2059 |
self.fail("Expected timeout didn't happen") |
|
2060 |
except errors.GenericError, err: |
|
2061 |
self.failUnlessEqual(err.args, (retry_arg, retry_arg)) |
|
2062 |
else: |
|
2063 |
self.fail("Expected GenericError didn't happen") |
|
2064 |
|
|
2065 |
def testRaiseInnerWithMsg(self): |
|
2066 |
retry_arg="my_important_debugging_message" |
|
2067 |
try: |
|
2068 |
try: |
|
2069 |
utils.Retry(self._RaiseRetryAgainWithArg, 0.01, 0.02, |
|
2070 |
args=[[retry_arg, retry_arg]]) |
|
2071 |
except utils.RetryTimeout, err: |
|
2072 |
err.RaiseInner() |
|
2073 |
else: |
|
2074 |
self.fail("Expected timeout didn't happen") |
|
2075 |
except utils.RetryTimeout, err: |
|
2076 |
self.failUnlessEqual(err.args, (retry_arg, retry_arg)) |
|
2077 |
else: |
|
2078 |
self.fail("Expected RetryTimeout didn't happen") |
|
2079 |
|
|
2080 |
|
|
2081 | 1998 |
class TestLineSplitter(unittest.TestCase): |
2082 | 1999 |
def test(self): |
2083 | 2000 |
lines = [] |
Also available in: Unified diff