Example #1
0
 def test_existing_job(self):
     '''
     Test cancelling an existing job.
     '''
     job1 = self.enqueue(queue=u'q')
     job2 = self.enqueue(queue=u'q')
     with helpers.recorded_logs(u'ckan.logic') as logs:
         helpers.call_action(u'job_cancel', id=job1.id)
     all_jobs = self.all_jobs()
     eq(len(all_jobs), 1)
     eq(all_jobs[0], job2)
     assert_raises(KeyError, jobs.job_from_id, job1.id)
     logs.assert_log(u'info', re.escape(job1.id))
Example #2
0
 def test_existing_job(self):
     '''
     Test cancelling an existing job.
     '''
     job1 = self.enqueue(queue=u'q')
     job2 = self.enqueue(queue=u'q')
     with helpers.recorded_logs(u'ckan.logic') as logs:
         helpers.call_action(u'job_cancel', id=job1.id)
     all_jobs = self.all_jobs()
     eq(len(all_jobs), 1)
     eq(all_jobs[0], job2)
     assert_raises(KeyError, jobs.job_from_id, job1.id)
     logs.assert_log(u'info', re.escape(job1.id))
Example #3
0
 def test_existing_job(self):
     """
     Test cancelling an existing job.
     """
     job1 = self.enqueue(queue=u"q")
     job2 = self.enqueue(queue=u"q")
     with helpers.recorded_logs(u"ckan.logic") as logs:
         helpers.call_action(u"job_cancel", id=job1.id)
     all_jobs = self.all_jobs()
     assert len(all_jobs) == 1
     assert all_jobs[0] == job2
     with pytest.raises(KeyError):
         jobs.job_from_id(job1.id)
     logs.assert_log(u"info", re.escape(job1.id))
Example #4
0
 def test_specific_queues(self):
     """
     Test clearing specific queues.
     """
     job1 = self.enqueue()
     job2 = self.enqueue(queue=u"q1")
     job3 = self.enqueue(queue=u"q1")
     job4 = self.enqueue(queue=u"q2")
     with helpers.recorded_logs(u"ckan.logic") as logs:
         queues = helpers.call_action(u"job_clear", queues=[u"q1", u"q2"])
     assert {u"q1", u"q2"} == set(queues)
     all_jobs = self.all_jobs()
     assert len(all_jobs) == 1
     assert all_jobs[0] == job1
     logs.assert_log(u"info", u"q1")
     logs.assert_log(u"info", u"q2")
Example #5
0
    def test_worker_exception_logging(self):
        u"""
        Test that exceptions in a job are logged.
        """
        self.enqueue(failing_job)
        worker = jobs.Worker()

        # Prevent worker from forking so that we can capture log
        # messages from within the job
        def execute_job(*args, **kwargs):
            return worker.perform_job(*args, **kwargs)

        worker.execute_job = execute_job
        with recorded_logs(u"ckan.lib.jobs") as logs:
            worker.work(burst=True)
        logs.assert_log(u"error", u"JOB FAILURE")
Example #6
0
    def test_worker_exception_logging(self):
        u'''
        Test that exceptions in a job are logged.
        '''
        job = self.enqueue(failing_job)
        worker = jobs.Worker()

        # Prevent worker from forking so that we can capture log
        # messages from within the job
        def execute_job(*args, **kwargs):
            return worker.perform_job(*args, **kwargs)

        worker.execute_job = execute_job
        with recorded_logs(u'ckan.lib.jobs') as logs:
            worker.work(burst=True)
        logs.assert_log(u'error', u'JOB FAILURE')
Example #7
0
 def test_specific_queues(self):
     '''
     Test clearing specific queues.
     '''
     job1 = self.enqueue()
     job2 = self.enqueue(queue=u'q1')
     job3 = self.enqueue(queue=u'q1')
     job4 = self.enqueue(queue=u'q2')
     with helpers.recorded_logs(u'ckan.logic') as logs:
         queues = helpers.call_action(u'job_clear', queues=[u'q1', u'q2'])
     eq({u'q1', u'q2'}, set(queues))
     all_jobs = self.all_jobs()
     eq(len(all_jobs), 1)
     eq(all_jobs[0], job1)
     logs.assert_log(u'info', u'q1')
     logs.assert_log(u'info', u'q2')
Example #8
0
 def test_specific_queues(self):
     '''
     Test clearing specific queues.
     '''
     job1 = self.enqueue()
     job2 = self.enqueue(queue=u'q1')
     job3 = self.enqueue(queue=u'q1')
     job4 = self.enqueue(queue=u'q2')
     with helpers.recorded_logs(u'ckan.logic') as logs:
         queues = helpers.call_action(u'job_clear', queues=[u'q1', u'q2'])
     eq({u'q1', u'q2'}, set(queues))
     all_jobs = self.all_jobs()
     eq(len(all_jobs), 1)
     eq(all_jobs[0], job1)
     logs.assert_log(u'info', u'q1')
     logs.assert_log(u'info', u'q2')
Example #9
0
 def test_worker_logging_lifecycle(self):
     u"""
     Test that a logger's lifecycle is logged.
     """
     queue = u"my_queue"
     job = self.enqueue(queue=queue)
     with recorded_logs(u"ckan.lib.jobs") as logs:
         worker = jobs.Worker([queue])
         worker.work(burst=True)
     messages = logs.messages[u"info"]
     # We expect 4 log messages: Worker start, job start, job end,
     # worker end.
     assert len(messages) == 4
     assert worker.key in messages[0]
     assert queue in messages[0]
     assert worker.key in messages[1]
     assert job.id in messages[1]
     assert worker.key in messages[2]
     assert job.id in messages[2]
     assert worker.key in messages[3]
Example #10
0
 def test_worker_logging_lifecycle(self):
     u'''
     Test that a logger's lifecycle is logged.
     '''
     queue = u'my_queue'
     job = self.enqueue(queue=queue)
     with recorded_logs(u'ckan.lib.jobs') as logs:
         worker = jobs.Worker([queue])
         worker.work(burst=True)
     messages = logs.messages[u'info']
     # We expect 4 log messages: Worker start, job start, job end,
     # worker end.
     assert_equal(len(messages), 4)
     ok_(worker.key in messages[0])
     ok_(queue in messages[0])
     ok_(worker.key in messages[1])
     ok_(job.id in messages[1])
     ok_(worker.key in messages[2])
     ok_(job.id in messages[2])
     ok_(worker.key in messages[3])
Example #11
0
 def test_worker_logging_lifecycle(self):
     u'''
     Test that a logger's lifecycle is logged.
     '''
     queue = u'my_queue'
     job = self.enqueue(queue=queue)
     with recorded_logs(u'ckan.lib.jobs') as logs:
         worker = jobs.Worker([queue])
         worker.work(burst=True)
     messages = logs.messages[u'info']
     # We expect 4 log messages: Worker start, job start, job end,
     # worker end.
     assert_equal(len(messages), 4)
     ok_(worker.key in messages[0])
     ok_(queue in messages[0])
     ok_(worker.key in messages[1])
     ok_(job.id in messages[1])
     ok_(worker.key in messages[2])
     ok_(job.id in messages[2])
     ok_(worker.key in messages[3])