Exemplo n.º 1
0
    def test_database_roundtrip(self):
        # job should not change on round trip from database
        job = Job(self.dbconn)
        db_job = Job.locate(job.job_id, self.dbconn)
        for field in job.__dict__:
            self.assertEqual(job.__dict__[field], db_job.__dict__[field], 'field %s does not match' % field)

        job.pending(self.dbconn)
        db_job = Job.locate(job.job_id, self.dbconn)
        for field in job.__dict__:
            self.assertEqual(job.__dict__[field], db_job.__dict__[field], 'field %s does not match' % field)

        job.run(self.dbconn, 0)
        db_job = Job.locate(job.job_id, self.dbconn)
        for field in job.__dict__:
            self.assertEqual(job.__dict__[field], db_job.__dict__[field], 'field %s does not match' % field)

        job.finish(self.dbconn)
        db_job = Job.locate(job.job_id, self.dbconn)
        for field in job.__dict__:
            self.assertEqual(job.__dict__[field], db_job.__dict__[field], 'field %s does not match' % field)
Exemplo n.º 2
0
    def test_locate_all(self):

        # make some jobs
        jobs = []
        for x in range(0, 10):
            job = Job(self.dbconn)
            job.pending(self.dbconn)
            jobs.append(job)

        # invalid state returns no jobs
        db_jobs = Job.locate_all(self.dbconn, 'not a valid state')
        self.assertEqual(db_jobs, [])

        # unspecified state should return all jobs
        for i, job in enumerate(jobs):
            if i % 2 == 0:
                job.run(self.dbconn, 0)

        # half of our jobs should be pending
        db_jobs = Job.locate_all(self.dbconn, Job.PENDING)
        self.assertEqual(len(db_jobs), 5)
        for job in db_jobs:
            self.assertEqual(job.state, Job.PENDING)

        # half of our jobs should be running
        db_jobs = Job.locate_all(self.dbconn, Job.RUNNING)
        self.assertEqual(len(db_jobs), 5)
        for job in db_jobs:
            self.assertEqual(job.state, Job.RUNNING)

        # we should not see finished jobs
        for i, job in enumerate(jobs):
            if i % 2 == 0:
                job.finish(self.dbconn)

        db_jobs = Job.locate_all(self.dbconn)
        self.assertEqual(len(db_jobs), 5)
        for job in db_jobs:
            self.assertNotEqual(job.state, Job.FINISHED)