コード例 #1
0
 def test_failure(self):
     """Tests that an exception is raised if the function doesn't succeed"""
     with self.assertRaises(RuntimeError):
         reliable_executor.reliably_execute(
             functools.partial(self.intermittent_function, self.intermittent_result(self.number_of_fails)),
             retry=(self.number_of_fails - 1),
             wait=0,
         )
コード例 #2
0
    def test_success_without_failures(self):
        """Tests that the correct result is returned if the function doesn't fail"""
        result = reliable_executor.reliably_execute(
            functools.partial(self.intermittent_function, self.intermittent_result()), retry=0, wait=0
        )

        self.assertEqual(result, 0)
コード例 #3
0
    def test_success_with_failures(self):
        """Tests that the correct result is returned if the function fails"""
        result = reliable_executor.reliably_execute(
            functools.partial(self.intermittent_function, self.intermittent_result(self.number_of_fails)),
            retry=self.number_of_fails,
            wait=0,
        )

        self.assertEqual(result, 0)
コード例 #4
0
def reliably_upload(
        image,
        settings,
        log=logging.getLogger(__name__),
):
    """Reliably uploads an image"""
    log.debug('Attempting to upload "%s"', image.id)
    try:
        log.info(
            'Uploaded "%s" as "%s" successfully',
            image.filename,
            reliable_executor.reliably_execute(
                upload,
                image,
                settings,
                log=log,
            ),
        )
    except RuntimeError as runtime_error:
        log.error(
            'Uploading "%s" failed because of "%s"',
            image.id,
            runtime_error,
        )