Example #1
0
    def test__run(self):
        job = Job(DBH.job)
        # No command defined, should fail.
        self.assertFalse(job.run())

        tmp_file = os.path.join(TMP_DIR, 'test__run_output.txt')
        text = 'Hello World!'

        script = """
#!/usr/bin/python
import sys

def main():
    with open('{file}', 'w') as f:
        f.write("{text}")
        f.write("\\n")
        for c, arg in enumerate(sys.argv):
            if c == 0:
                continue
            f.write(str(c) + ': ' + arg + "\\n")

if __name__ == '__main__':
    main()
    """.format(file=tmp_file, text=text)

        script_name = os.path.join(TMP_DIR, 'test__run.py')
        with open(script_name, 'w') as f:
            f.write(script.strip())
        os.chmod(script_name, 0700)

        # Test without args or options
        job.command = script_name
        self.assertEqual(job.run(), 0)

        expect = """Hello World!
"""
        got = ''
        with open(tmp_file, 'r') as f:
            got = f.read()
        self.assertEqual(got, expect)

        # Test with args or options
        job.command = "{script} -v -a delete 123".format(script=script_name)
        self.assertEqual(job.run(), 0)
        expect = """Hello World!
1: -v
2: -a
3: delete
4: 123
"""
        got = ''
        with open(tmp_file, 'r') as f:
            got = f.read()
        self.assertEqual(got, expect)
Example #2
0
    def test__top_job(self):
        queue = Queue(DBH.job)
        if len(queue.jobs()) > 0:
            for j in queue.jobs():
                j.remove()
        self.assertEqual(len(queue.jobs()), 0)

        self.assertRaises(QueueEmptyError, queue.top_job)

        job_1 = Job(DBH.job, start='2010-01-01 10:00:00', priority=0).add()
        job_2 = Job(DBH.job, start='2010-01-01 10:00:01', priority=-1).add()
        job_3 = Job(DBH.job, start='2010-01-01 10:00:02', priority=1).add()
        job_4 = Job(DBH.job, start='2999-12-31 23:59:59', priority=1).add()

        job = queue.top_job()
        self.assertEqual(job.id, job_3.id)

        job_1.remove()
        job_2.remove()
        job_3.remove()
        job_4.remove()