Changeset a2b0582


Ignore:
Timestamp:
Jan 11, 2012, 10:22:47 PM (12 years ago)
Author:
Isaac Evans <ine@…>
Branches:
no-cups
Children:
d518298
Parents:
345c476
git-author:
Isaac Evans <ine@…> (01/11/12 22:22:47)
git-committer:
Isaac Evans <ine@…> (01/11/12 22:22:47)
Message:

Added tests for printer

Location:
server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • server/lib/gutenbach/server/job.py

    r345c476 ra2b0582  
    153153    @property
    154154    def state(self):
     155        """
     156        State transitions are as follows:
     157HELD ---> PENDING ---> PROCESSING <--> STOPPED (aka paused)
     158             ^              |---> CANCELLED
     159             |              |---> ABORTED
     160             |              |---> COMPLETE ---|
     161             |--------------------------------|
     162        """
    155163        if self.is_ready:
    156164            state = States.PENDING
  • server/test/server/printer.py

    r09790fe ra2b0582  
     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 TracChangeset for help on using the changeset viewer.