def test_throwExceptionWithoutParamWithCustomTimesTest(self):
     with self.assertRaises(IOError):
         try:
             GenericWait().wait(self.throw_error, self.test_retry,
                                self.test_timeout, True)
         except Exception as e:
             raise e.message()
 def test_throwExceptionWithParamWithCustomTimesTest(self):
     with self.assertRaises(IOError):
         try:
             GenericWait().wait(self.throw_error, self.test_retry,
                                self.test_timeout, True, "Anything")
         except Exception as e:
             raise e.getCause()
 def throwExceptionWithParamTest(self):
     with self.assertRaises(RuntimeError):
         try:
             GenericWait().wait_for_true(self.throw_error,
                                         self.main_test_string)
         except Exception as e:
             raise e.message
 def test_failStringUntilTest(self):
     try:
         self.assertFalse(
             GenericWait().wait_until(self.is_param_test_String("Bad")),
             "Failed single parameter test")
     except Exception as e:
         self.fail("waitUntil failed with exception" + e)
 def test_passNoParamUntilTest(self):
     # have to use an array because the iterator needs to be mutable
     loop = [0]
     try:
         self.assertTrue(GenericWait().wait_until(loop[0] > 3), "Failed no parameter test")
     except Exception as e:
         self.fail("waitUntil no parameter test failed with exception", e.args)
 def test_waitUntilMatch(self):
     try:
         loop = [""]
         self.assertEquals(GenericWait().wait_until_match(
             (lambda x: loop.insert(0, "a"), loop.insert(0, "aaa")), "aaa"))
     except InterruptedError as e:
         self.fail("waitUntil threw unexpected exception", e)
 def test_waitForMatchDefinedRetryPass(self):
     try:
         test_loop = [""]
         GenericWait().wait_for_match(lambda x: test_loop.insert(0, "a"),
                                      "aaa", self.test_retry,
                                      self.test_timeout)
     except Exception as e:
         self.fail("waitFor threw unexpected exception" + e)
    def test_passObjectArrayForTest(self):
        objects = ["one", {}]
        # objects.add(new HashMap<Integer, UUID>());

        try:
            GenericWait().wait_for(self.is_two_parameters, objects)
        except Exception as e:
            self.fail("waitFor generic object test failed with exception" + e)
    def test_passObjectArrayUntilTest(self):
        objects = ["one", {}]
        # objects.add(new HashMap<Integer, UUID>());

        try:
            self.assertTrue(GenericWait().wait_until(self.is_two_parameters, objects), "Failed parameter array test")
        except Exception as e:
            self.fail("waitUntil generic object test failed with exception", e)
 def test_waitUntilMatchTimeout(self):
     try:
         loop = ["aa"]
         self.assertEquals(
             GenericWait().wait_until_match(lambda x: loop.insert(0, ""), "bb", self.test_retry, self.test_timeout),
             "aa")
     except InterruptedError as e:
         self.fail("waitUntil threw unexpected exception", e)
 def test_failObjectArrayUntilTest(self):
     objects = []
     try:
         self.assertFalse(
             GenericWait().wait_until(self.is_two_parameters(objects),
                                      objects),
             "Failed parameter array test")
     except Exception as e:
         self.fail("waitUntil failed with exception" + e)
 def test_customTimeoutWithParamTest(self):
     try:
         max_time = timedelta(self.test_timeout) + timedelta(self.test_retry) + timedelta(self.test_retry)
         start = datetime.now()
         GenericWait().wait(self.is_param_test, self.test_retry, self.test_timeout, False, "bad")
         duration = datetime.now() - timedelta(start)
         self.assertTrue(duration < max_time,
                         "The max wait time should be no more than " + max_time + " but was " + duration)
     except TimeoutError as e:
         self.fail("wait threw unexpected exception: " + e.message)
 def test_waitUntilMatchNeverMatch(self):
     # TODO: make sure test is set up properly
     try:
         loop = ["aa"]
         loop.insert(0 , "")
         loop.insert(0, "bb")
         # self.assertEquals(GenericWait().wait_until_match((lambda x: loop.insert(0, "") and loop.insert(0, "bb")), "aa"))
         self.assertEquals(GenericWait().wait_until_match((lambda x: loop.insert(0, "") and loop.insert(0, "bb")), "aa"))
     except InterruptedError as e:
         self.fail("waitUntil threw unexpected exception", e)
 def test_customTimeoutWithoutParamTest(self):
     try:
         max_time = int(self.test_timeout) + int(self.test_retry) + int(self.test_retry)
         start = datetime.now()
         GenericWait().wait(self.is_param_test, self.test_retry, self.test_timeout, False)
         duration = datetime.now() - start
         self.assertTrue(duration < datetime.fromtimestamp(max_time),
                         "The max wait time should be no more than " + max_time + " but was " + duration)
     except Exception as e:
         self.fail("wait threw unexpected exception", e)
 def test_customTimeoutWithParamTest(self):
     try:
         max_time = int(self.test_timeout) + int(self.test_retry) + int(
             self.test_retry)
         start_time = datetime.now()
         GenericWait().wait(self.is_param_test, self.test_retry,
                            self.test_timeout, "bad")
         duration = (datetime.now() - start_time).total_seconds()
         self.assertTrue(
             duration < max_time,
             "The max wait time should be no more than " + str(max_time) +
             " but was " + str(duration))
     except TimeoutError as e:
         self.fail("wait threw unexpected exception: " + e.message)
 def test_throwExceptionWithoutParamTest(self):
     with self.assertRaises(NotImplementedError):
         try:
             GenericWait().wait_for_true(self.throw_error)
         except Exception as e:
             raise e.args()
 def throwTimeoutExceptionWithParamTest(self):
     with self.assertRaises(TimeoutError):
         GenericWait().wait_for_true(self.is_two_parameters, ([]))
 def throwTimeoutExceptionWithoutParamTest(self):
     with self.assertRaises(TimeoutError):
         GenericWait().wait_for_true(self.is_param_test)
 def test_waitForTruePasses(self):
     try:
         GenericWait().wait_for_true(bool(2 == 2))
     except Exception as e:
         self.fail("waitForTrue threw unexpected exception" + e)
 def test_waitForMatchDefinedRetryTimeout(self):
     with self.assertRaises(TimeoutError):
         test_loop = ["a"]
         GenericWait().wait_for_match(lambda x: test_loop.insert(0, "a"),
                                      "bb", self.test_retry,
                                      self.test_timeout)
 def test_waitForTest(self):
     try:
         self.assertFalse(GenericWait().wait_for(self.is_param_test()))
     except Exception as e:
         self.fail("waitFor threw unexpected exception" + e)
 def test_waitForMatchTimeoutException(self):
     with self.assertRaises(TimeoutError):
         loop = ["a"]
         GenericWait().wait_for_match(lambda x: loop.insert(0, "a"), "bb")
 def test_waitForMatchPass(self):
     try:
         loop = [""]
         GenericWait().wait_for_match(lambda x: loop.insert(0, "a"), "aaa")
     except Exception as e:
         self.fail("waitFor threw unexpected exception" + e)
 def test_waitForTruePassesWithParameters(self):
     try:
         GenericWait().wait_for_true(lambda c: 2 == c, 2)
     except Exception as e:
         self.fail("waitForTrue threw unexpected exception" + e)
 def test_waitForFunctionWithInputExceptionThrown(self):
     GenericWait().wait(self.throw_error, self.test_retry,
                        self.test_timeout, "input")