示例#1
0
    def disabled_test_timeout_short(self):
        """When a job exceeds its lease, an exception is raised.

        Unfortunately, timeouts include the time it takes for the zope
        machinery to start up, so we run a job that will not time out first,
        followed by a job that is sure to time out.
        """
        logger = BufferLogger()
        logger.setLevel(logging.INFO)
        # StuckJob is actually a source of two jobs. The first is fast, the
        # second slow.
        runner = TwistedJobRunner.runFromSource(ShorterStuckJob,
                                                'branchscanner', logger)
        self.oops_capture.sync()
        oops = self.oopses[0]
        self.assertEqual(
            (1, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
        self.assertThat(
            logger.getLogBuffer(),
            MatchesRegex(
                dedent("""\
                INFO Running through Twisted.
                INFO Running <ShorterStuckJob.*?> \(ID .*?\).
                INFO Running <ShorterStuckJob.*?> \(ID .*?\).
                INFO Job resulted in OOPS: %s
                """) % oops['id']))
        self.assertEqual(('TimeoutError', 'Job ran too long.'),
                         (oops['type'], oops['value']))
示例#2
0
 def test_no_jobs(self):
     logger = BufferLogger()
     logger.setLevel(logging.INFO)
     runner = TwistedJobRunner.runFromSource(NoJobs, 'branchscanner',
                                             logger)
     self.assertEqual(
         (0, 0), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
示例#3
0
 def test_no_jobs(self):
     logger = BufferLogger()
     logger.setLevel(logging.INFO)
     runner = TwistedJobRunner.runFromSource(
         NoJobs, 'branchscanner', logger)
     self.assertEqual(
         (0, 0), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
示例#4
0
    def disabled_test_timeout_short(self):
        """When a job exceeds its lease, an exception is raised.

        Unfortunately, timeouts include the time it takes for the zope
        machinery to start up, so we run a job that will not time out first,
        followed by a job that is sure to time out.
        """
        logger = BufferLogger()
        logger.setLevel(logging.INFO)
        # StuckJob is actually a source of two jobs. The first is fast, the
        # second slow.
        runner = TwistedJobRunner.runFromSource(
            ShorterStuckJob, 'branchscanner', logger)
        self.oops_capture.sync()
        oops = self.oopses[0]
        self.assertEqual(
            (1, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
        self.assertThat(
            logger.getLogBuffer(), MatchesRegex(
                dedent("""\
                INFO Running through Twisted.
                INFO Running <ShorterStuckJob.*?> \(ID .*?\).
                INFO Running <ShorterStuckJob.*?> \(ID .*?\).
                INFO Job resulted in OOPS: %s
                """) % oops['id']))
        self.assertEqual(('TimeoutError', 'Job ran too long.'),
                         (oops['type'], oops['value']))
示例#5
0
 def test_lease_held_handled(self):
     """Jobs that raise LeaseHeld are handled correctly."""
     logger = BufferLogger()
     logger.setLevel(logging.DEBUG)
     runner = TwistedJobRunner.runFromSource(LeaseHeldJob, 'branchscanner',
                                             logger)
     self.assertIn('Could not acquire lease', logger.getLogBuffer())
     self.assertEqual(
         (0, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
示例#6
0
 def test_lease_held_handled(self):
     """Jobs that raise LeaseHeld are handled correctly."""
     logger = BufferLogger()
     logger.setLevel(logging.DEBUG)
     runner = TwistedJobRunner.runFromSource(
         LeaseHeldJob, 'branchscanner', logger)
     self.assertIn('Could not acquire lease', logger.getLogBuffer())
     self.assertEqual(
         (0, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
示例#7
0
 def disable_test_memory_hog_job(self):
     """A job with a memory limit will trigger MemoryError on excess."""
     # XXX: frankban 2012-03-29 bug=963455: This test fails intermittently,
     # especially in parallel tests.
     logger = BufferLogger()
     logger.setLevel(logging.INFO)
     runner = TwistedJobRunner.runFromSource(MemoryHogJob, 'branchscanner',
                                             logger)
     self.assertEqual(
         (0, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
     self.assertIn('Job resulted in OOPS', logger.getLogBuffer())
     self.oops_capture.sync()
     self.assertEqual('MemoryError', self.oopses[0]['type'])
示例#8
0
 def disable_test_memory_hog_job(self):
     """A job with a memory limit will trigger MemoryError on excess."""
     # XXX: frankban 2012-03-29 bug=963455: This test fails intermittently,
     # especially in parallel tests.
     logger = BufferLogger()
     logger.setLevel(logging.INFO)
     runner = TwistedJobRunner.runFromSource(
         MemoryHogJob, 'branchscanner', logger)
     self.assertEqual(
         (0, 1), (len(runner.completed_jobs), len(runner.incomplete_jobs)))
     self.assertIn('Job resulted in OOPS', logger.getLogBuffer())
     self.oops_capture.sync()
     self.assertEqual('MemoryError', self.oopses[0]['type'])