Beispiel #1
0
 def test_jobs_manager(self):
     'Test the jobs manager'
     from calibre.srv.jobs import JobsManager
     O = namedtuple('O', 'max_jobs max_job_time')
     class FakeLog(list):
         def error(self, *args):
             self.append(' '.join(args))
     jm = JobsManager(O(1, 5), FakeLog())
     job_id = jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
     job_id2 = jm.start_job('t2', 'calibre.srv.jobs', 'sleep_test', args=(3,))
     jid = jm.start_job('err test', 'calibre.srv.jobs', 'error_test')
     status = jm.job_status(job_id)[0]
     s = ('waiting', 'running')
     self.assertIn(status, s)
     status2 = jm.job_status(job_id2)[0]
     self.assertEqual(status2, 'waiting')
     while jm.job_status(job_id)[0] in s:
         time.sleep(0.01)
     status, result, tb, was_aborted = jm.job_status(job_id)
     self.assertEqual(status, 'finished')
     self.assertFalse(was_aborted)
     self.assertFalse(tb)
     self.assertEqual(result, 1.0)
     status2 = jm.job_status(job_id2)[0]
     time.sleep(0.01)
     self.assertEqual(status2, 'running')
     jm.abort_job(job_id2)
     self.assertTrue(jm.wait_for_running_job(job_id2))
     status, result, tb, was_aborted = jm.job_status(job_id2)
     self.assertTrue(was_aborted)
     self.assertTrue(jm.wait_for_running_job(jid))
     status, result, tb, was_aborted = jm.job_status(jid)
     self.assertTrue(tb), self.assertIn('a testing error', tb)
     jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
     jm.shutdown(), jm.wait_for_shutdown(monotonic() + 1)
Beispiel #2
0
    def test_jobs_manager(self):
        'Test the jobs manager'
        from calibre.srv.jobs import JobsManager
        O = namedtuple('O', 'max_jobs max_job_time')

        class FakeLog(list):

            def error(self, *args):
                self.append(' '.join(args))
        s = ('waiting', 'running')
        jm = JobsManager(O(1, 5), FakeLog())

        def job_status(jid):
            return jm.job_status(jid)[0]

        # Start jobs
        job_id1 = jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
        job_id2 = jm.start_job('t2', 'calibre.srv.jobs', 'sleep_test', args=(3,))
        job_id3 = jm.start_job('err test', 'calibre.srv.jobs', 'error_test')

        # Job 1
        job_id = job_id1
        status = jm.job_status(job_id)[0]
        self.assertIn(status, s)
        for jid in (job_id2, job_id3):
            self.assertEqual(job_status(jid), 'waiting')
        while job_status(job_id) in s:
            time.sleep(0.01)
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual(status, 'finished')
        self.assertFalse(was_aborted)
        self.assertFalse(tb)
        self.assertEqual(result, 1.0)

        # Job 2
        job_id = job_id2
        while job_status(job_id) == 'waiting':
            time.sleep(0.01)
        self.assertEqual('running', job_status(job_id))
        jm.abort_job(job_id)
        self.assertIn(jm.wait_for_running_job(job_id), (True, None))
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual('finished', status)
        self.assertTrue(was_aborted)

        # Job 3
        job_id = job_id3
        while job_status(job_id) == 'waiting':
            time.sleep(0.01)
        self.assertIn(jm.wait_for_running_job(job_id), (True, None))
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual(status, 'finished')
        self.assertFalse(was_aborted)
        self.assertTrue(tb)
        self.assertIn('a testing error', tb)
        jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
        jm.shutdown(), jm.wait_for_shutdown(monotonic() + 1)
Beispiel #3
0
    def test_jobs_manager(self):
        'Test the jobs manager'
        from calibre.srv.jobs import JobsManager
        O = namedtuple('O', 'max_jobs max_job_time')

        class FakeLog(list):

            def error(self, *args):
                self.append(' '.join(args))
        s = ('waiting', 'running')
        jm = JobsManager(O(1, 5), FakeLog())

        def job_status(jid):
            return jm.job_status(jid)[0]

        # Start jobs
        job_id1 = jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
        job_id2 = jm.start_job('t2', 'calibre.srv.jobs', 'sleep_test', args=(3,))
        job_id3 = jm.start_job('err test', 'calibre.srv.jobs', 'error_test')

        # Job 1
        job_id = job_id1
        status = jm.job_status(job_id)[0]
        self.assertIn(status, s)
        for jid in (job_id2, job_id3):
            self.assertEqual(job_status(jid), 'waiting')
        while job_status(job_id) in s:
            time.sleep(0.01)
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual(status, 'finished')
        self.assertFalse(was_aborted)
        self.assertFalse(tb)
        self.assertEqual(result, 1.0)

        # Job 2
        job_id = job_id2
        while job_status(job_id) == 'waiting':
            time.sleep(0.01)
        self.assertEqual('running', job_status(job_id))
        jm.abort_job(job_id)
        self.assertIn(jm.wait_for_running_job(job_id), (True, None))
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual('finished', status)
        self.assertTrue(was_aborted)

        # Job 3
        job_id = job_id3
        while job_status(job_id) == 'waiting':
            time.sleep(0.01)
        self.assertIn(jm.wait_for_running_job(job_id), (True, None))
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual(status, 'finished')
        self.assertFalse(was_aborted)
        self.assertTrue(tb)
        self.assertIn('a testing error', tb)
        jm.start_job('simple test', 'calibre.srv.jobs', 'sleep_test', args=(1.0,))
        jm.shutdown(), jm.wait_for_shutdown(monotonic() + 1)
Beispiel #4
0
    def test_jobs_manager(self):
        'Test the jobs manager'
        from calibre.srv.jobs import JobsManager
        O = namedtuple('O', 'max_jobs max_job_time')

        class FakeLog(list):
            def error(self, *args):
                self.append(' '.join(args))

        jm = JobsManager(O(1, 5), FakeLog())
        job_id = jm.start_job('simple test',
                              'calibre.srv.jobs',
                              'sleep_test',
                              args=(1.0, ))
        job_id2 = jm.start_job('t2',
                               'calibre.srv.jobs',
                               'sleep_test',
                               args=(3, ))
        jid = jm.start_job('err test', 'calibre.srv.jobs', 'error_test')
        status = jm.job_status(job_id)[0]
        s = ('waiting', 'running')
        self.assertIn(status, s)
        status2 = jm.job_status(job_id2)[0]
        self.assertEqual(status2, 'waiting')
        while jm.job_status(job_id)[0] in s:
            time.sleep(0.01)
        status, result, tb, was_aborted = jm.job_status(job_id)
        self.assertEqual(status, 'finished')
        self.assertFalse(was_aborted)
        self.assertFalse(tb)
        self.assertEqual(result, 1.0)
        status2 = jm.job_status(job_id2)[0]
        time.sleep(0.01)
        self.assertEqual(status2, 'running')
        jm.abort_job(job_id2)
        self.assertTrue(jm.wait_for_running_job(job_id2))
        status, result, tb, was_aborted = jm.job_status(job_id2)
        self.assertTrue(was_aborted)
        self.assertTrue(jm.wait_for_running_job(jid))
        status, result, tb, was_aborted = jm.job_status(jid)
        self.assertTrue(tb), self.assertIn('a testing error', tb)
        jm.start_job('simple test',
                     'calibre.srv.jobs',
                     'sleep_test',
                     args=(1.0, ))
        jm.shutdown(), jm.wait_for_shutdown(monotonic() + 1)