source: server/test/server/printer.py @ a2b0582

no-cups
Last change on this file since a2b0582 was a2b0582, checked in by Isaac Evans <ine@…>, 12 years ago

Added tests for printer

  • Property mode set to 100644
File size: 2.2 KB
Line 
1from gutenbach.server import GutenbachJob
2from gutenbach.server import GutenbachPrinter
3from gutenbach.server import errors
4
5from gutenbach.ipp import JobStates as States
6import unittest
7import tempfile
8
9class TestGutenbachPrinter(unittest.TestCase):
10
11    testJobName = "unique_test_job"
12    testJobRequestingUserName = "unique_test_username"
13
14    def setUp(self):
15        self.printer = GutenbachPrinter("test")
16        self.printer.start()
17
18    def tearDown(self):
19        self.printer.running = False
20        self.printer.join()
21
22    # nb: this test assumes that pause_printer will block until it has paused.
23    def testPausePrinter(self):
24        self.printer.pause_printer()
25        self.assertEqual(self.printer.paused, True)
26
27        # check that no jobs are playing
28        for job_id, job in self.printer.jobs.items():
29            self.assertEqual(job.is_playing(), False)
30
31    def createTestJob(self):
32        return self.printer.create_job(self.testJobRequestingUserName, self.testJobName)
33 
34    def testCreateJob(self):
35        countBeforeAdded = len(self.printer.jobs)
36        job_id = self.createTestJob()
37        self.assertEqual(len(self.printer.jobs) - 1, countBeforeAdded)
38
39        queued_job = self.printer.get_job(job_id)
40        b = queued_job is not None
41        self.assertTrue(b)
42        self.assertEqual(queued_job.name, self.testJobName)
43        self.assertEqual(queued_job.creator, self.testJobRequestingUserName)
44        self.assertEqual(queued_job.state, States.HELD)
45
46    def testResumePrinter(self):
47        self.printer.resume_printer()
48        self.assertEqual(self.printer.paused, False)
49
50    def testJobPlays(self):
51        job_id = self.createTestJob()
52        self.assertTrue(job_id in self.printer.pending_jobs)
53        self.assertFalse(job_id in self.printer.finished_jobs)
54        self.printer.complete_job()
55        while (self.printer.get_job(job_id).state == States.PENDING):
56            time.sleep(0.1)
57       
58        non_pending_job = self.printer.get_job(job_id)
59        self.assertTrue(non_pending_job.state == States.COMPLETE)
60
61        self.assertFalse(job_id in self.printer.pending_jobs)
62        self.assertTrue(job_id in self.printer.finished_jobs)
63
64if __name__ == "__main__":
65    unittest.main()
Note: See TracBrowser for help on using the repository browser.