source: server/test/server/job.py @ 345c476

no-cups
Last change on this file since 345c476 was 345c476, checked in by Jessica B. Hamrick <jhamrick@…>, 12 years ago

Make status handling better in job.py

  • Property mode set to 100644
File size: 2.9 KB
Line 
1from gutenbach.server import GutenbachJob
2from gutenbach.server import errors
3from gutenbach.ipp import JobStates as States
4import unittest
5import tempfile
6
7def make_tempfile():
8    fh = tempfile.NamedTemporaryFile()
9    fh.write("test\n")
10    fh.seek(0)
11    return fh
12
13class TestEmptyGutenbachJob(unittest.TestCase):
14
15    def setUp(self):
16        self.job = GutenbachJob()
17
18    def testPlayer(self):
19        self.assertEqual(self.job.player, None)
20    def testId(self):
21        self.assertEqual(self.job.id, -1)
22    def testCreator(self):
23        self.assertEqual(self.job.creator, "")
24    def testName(self):
25        self.assertEqual(self.job.name, "")
26    def testSize(self):
27        self.assertEqual(self.job.size, 0)
28    def testState(self):
29        self.assertEqual(self.job.state, States.HELD)
30    def testPriority(self):
31        self.assertEqual(self.job.priority, 1)
32
33    def testStateProperties(self):
34        self.assertFalse(self.job.is_valid)
35        self.assertFalse(self.job.is_ready)
36        self.assertFalse(self.job.is_playing)
37        self.assertFalse(self.job.is_paused)
38        self.assertFalse(self.job.is_done)
39
40    def testSpool(self):
41        fh = make_tempfile()
42        # This should fail, because the id hasn't been set
43        self.assertFalse(self.job.is_valid)
44        self.job.id = 1
45        self.assertTrue(self.job.is_valid)
46        self.assertFalse(self.job.is_ready)
47        self.job.spool(fh)
48        self.assertEqual(self.job.document, fh.name)
49        self.assertNotEqual(self.job.player, None)
50        self.assertEqual(self.job.creator, "")
51        self.assertEqual(self.job.state, States.PENDING)
52        self.assertTrue(self.job.is_ready)
53        self.job.abort()
54    def testPlay(self):
55        self.assertRaises(errors.InvalidJobStateException, self.job.play)
56    def testPause(self):
57        self.assertRaises(errors.InvalidJobStateException, self.job.pause)
58    def testCancel(self):
59        self.job.cancel()
60        self.assertEqual(self.job.state, States.CANCELLED)
61    def testAbort(self):
62        self.job.abort()
63        self.assertEqual(self.job.state, States.ABORTED)
64
65class TestBadGutenbachJob(unittest.TestCase):
66
67    def testBadJobId(self):
68        self.job = GutenbachJob(job_id=-2)
69        self.assertEqual(self.job.id, -1)
70        self.job.id = -2
71        self.assertEqual(self.job.id, -1)
72
73    def testBadCreator(self):
74        self.job = GutenbachJob(job_id=1, creator=12345)
75        self.assertEqual(self.job.creator, "12345")
76        self.job.creator = None
77        self.assertEqual(self.job.creator, "")
78        self.job.creator = []
79        self.assertEqual(self.job.creator, "[]")
80
81    def testBadName(self):
82        self.job = GutenbachJob(job_id=1, creator="foo", name=12345)
83        self.assertEqual(self.job.name, "12345")
84        self.job.name = None
85        self.assertEqual(self.job.name, "")
86        self.job.name = []
87        self.assertEqual(self.job.name, "[]")
88
89if __name__ == "__main__":
90    unittest.main()
Note: See TracBrowser for help on using the repository browser.