source: server/test/server/job.py @ 09790fe

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

Adding test case skeleton files; add test cases to job.py

  • Property mode set to 100644
File size: 2.8 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_playing)
35        self.assertFalse(self.job.is_ready)
36        self.assertFalse(self.job.is_finished)
37
38    def testSpool(self):
39        fh = make_tempfile()
40        self.job.spool(fh)
41        self.assertEqual(self.job.document, fh.name)
42        self.assertNotEqual(self.job.player, None)
43        self.assertEqual(self.job.creator, "")
44        self.assertEqual(self.job.state, States.PENDING)
45        # This should fail, because the id hasn't been set
46        self.assertFalse(self.job.is_ready)
47        self.job.id = 1
48        self.assertTrue(self.job.is_ready)
49        self.job.abort()
50    def testPlay(self):
51        self.assertRaises(errors.InvalidJobStateException, self.job.play)
52    def testPause(self):
53        self.assertRaises(errors.InvalidJobStateException, self.job.pause)
54    def testCancel(self):
55        self.job.cancel()
56        self.assertEqual(self.job.state, States.CANCELLED)
57    def testAbort(self):
58        self.job.abort()
59        self.assertEqual(self.job.state, States.ABORTED)
60
61class TestBadGutenbachJob(unittest.TestCase):
62
63    def testBadJobId(self):
64        self.job = GutenbachJob(job_id=-2)
65        self.assertEqual(self.job.id, -1)
66        self.job.id = -2
67        self.assertEqual(self.job.id, -1)
68
69    def testBadCreator(self):
70        self.job = GutenbachJob(job_id=1, creator=12345)
71        self.assertEqual(self.job.creator, "12345")
72        self.job.creator = None
73        self.assertEqual(self.job.creator, "")
74        self.job.creator = []
75        self.assertEqual(self.job.creator, "[]")
76
77    def testBadName(self):
78        self.job = GutenbachJob(job_id=1, creator="foo", name=12345)
79        self.assertEqual(self.job.name, "12345")
80        self.job.name = None
81        self.assertEqual(self.job.name, "")
82        self.job.name = []
83        self.assertEqual(self.job.name, "[]")
84
85if __name__ == "__main__":
86    unittest.main()
Note: See TracBrowser for help on using the repository browser.