コード例 #1
0
ファイル: test_celeryd_detach.py プロジェクト: fatelei/celery
    def test_parser(self):
        x = detached_celeryd(self.app)
        p = x.create_parser('celeryd_detach')
        options, values = p.parse_args([
            '--logfile=foo', '--fake', '--enable',
            'a', 'b', '-c1', '-d', '2',
        ])
        self.assertEqual(options.logfile, 'foo')
        self.assertEqual(values, ['a', 'b'])
        self.assertEqual(p.leftovers, ['--enable', '-c1', '-d', '2'])
        options, values = p.parse_args([
            '--fake', '--enable',
            '--pidfile=/var/pid/foo.pid',
            'a', 'b', '-c1', '-d', '2',
        ])
        self.assertEqual(options.pidfile, '/var/pid/foo.pid')

        with mock.stdouts():
            with self.assertRaises(SystemExit):
                p.parse_args(['--logfile'])
            p.get_option('--logfile').nargs = 2
            with self.assertRaises(SystemExit):
                p.parse_args(['--logfile=a'])
            with self.assertRaises(SystemExit):
                p.parse_args(['--fake=abc'])

        assert p.get_option('--logfile').nargs == 2
        p.parse_args(['--logfile=a', 'b'])
        p.get_option('--logfile').nargs = 1
コード例 #2
0
    def test_logging_proxy(self):
        logger = self.setup_logger(loglevel=logging.ERROR,
                                   logfile=None,
                                   root=False)

        with mock.wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write('foo')
            self.assertNotIn('foo', sio.getvalue())
            p.closed = False
            p.write('foo')
            self.assertIn('foo', sio.getvalue())
            lines = ['baz', 'xuzzy']
            p.writelines(lines)
            for line in lines:
                self.assertIn(line, sio.getvalue())
            p.flush()
            p.close()
            self.assertFalse(p.isatty())

            with mock.stdouts() as (stdout, stderr):
                with in_sighandler():
                    p.write('foo')
                    self.assertTrue(stderr.getvalue())
コード例 #3
0
ファイル: test_log.py プロジェクト: m4ddav3/celery
    def test_setup_logger_no_handlers_stream(self):
        l = self.get_logger()
        l.handlers = []

        with mock.stdouts() as outs:
            stdout, stderr = outs
            l = self.setup_logger(logfile=sys.stderr, loglevel=logging.INFO, root=False)
            l.info("The quick brown fox...")
            self.assertIn("The quick brown fox...", stderr.getvalue())
コード例 #4
0
ファイル: test_platforms.py プロジェクト: 277800076/celery
    def test_remove_if_stale_broken_pid(self):
        with mock.stdouts():
            p = Pidfile('/var/pid')
            p.read_pid = Mock()
            p.read_pid.side_effect = ValueError()
            p.remove = Mock()

            self.assertTrue(p.remove_if_stale())
            p.remove.assert_called_with()
コード例 #5
0
ファイル: test_platforms.py プロジェクト: fatelei/celery
    def test_remove_if_stale_broken_pid(self):
        with mock.stdouts():
            p = Pidfile('/var/pid')
            p.read_pid = Mock()
            p.read_pid.side_effect = ValueError()
            p.remove = Mock()

            self.assertTrue(p.remove_if_stale())
            p.remove.assert_called_with()
コード例 #6
0
ファイル: test_log.py プロジェクト: fatelei/celery
    def test_setup_logger_no_handlers_stream(self):
        l = self.get_logger()
        l.handlers = []

        with mock.stdouts() as outs:
            stdout, stderr = outs
            l = self.setup_logger(logfile=sys.stderr,
                                  loglevel=logging.INFO, root=False)
            l.info('The quick brown fox...')
            self.assertIn('The quick brown fox...', stderr.getvalue())
コード例 #7
0
    def test_crash(self):
        class T(bgThread):
            def body(self):
                raise KeyError()

        with patch('os._exit') as _exit:
            with mock.stdouts():
                _exit.side_effect = ValueError()
                t = T()
                with self.assertRaises(ValueError):
                    t.run()
                _exit.assert_called_with(1)
コード例 #8
0
ファイル: test_platforms.py プロジェクト: 277800076/celery
 def test_remove_if_stale_process_dead(self, kill):
     with mock.stdouts():
         p = Pidfile('/var/pid')
         p.read_pid = Mock()
         p.read_pid.return_value = 1816
         p.remove = Mock()
         exc = OSError()
         exc.errno = errno.ESRCH
         kill.side_effect = exc
         self.assertTrue(p.remove_if_stale())
         kill.assert_called_with(1816, 0)
         p.remove.assert_called_with()
コード例 #9
0
ファイル: test_platforms.py プロジェクト: 277800076/celery
    def test_create_pidlock(self, Pidfile):
        p = Pidfile.return_value = Mock()
        p.is_locked.return_value = True
        p.remove_if_stale.return_value = False
        with mock.stdouts() as (_, err):
            with self.assertRaises(SystemExit):
                create_pidlock('/var/pid')
            self.assertIn('already exists', err.getvalue())

        p.remove_if_stale.return_value = True
        ret = create_pidlock('/var/pid')
        self.assertIs(ret, p)
コード例 #10
0
ファイル: test_platforms.py プロジェクト: fatelei/celery
 def test_remove_if_stale_process_dead(self, kill):
     with mock.stdouts():
         p = Pidfile('/var/pid')
         p.read_pid = Mock()
         p.read_pid.return_value = 1816
         p.remove = Mock()
         exc = OSError()
         exc.errno = errno.ESRCH
         kill.side_effect = exc
         self.assertTrue(p.remove_if_stale())
         kill.assert_called_with(1816, 0)
         p.remove.assert_called_with()
コード例 #11
0
ファイル: test_platforms.py プロジェクト: fatelei/celery
    def test_create_pidlock(self, Pidfile):
        p = Pidfile.return_value = Mock()
        p.is_locked.return_value = True
        p.remove_if_stale.return_value = False
        with mock.stdouts() as (_, err):
            with self.assertRaises(SystemExit):
                create_pidlock('/var/pid')
            self.assertIn('already exists', err.getvalue())

        p.remove_if_stale.return_value = True
        ret = create_pidlock('/var/pid')
        self.assertIs(ret, p)
コード例 #12
0
ファイル: test_threads.py プロジェクト: 277800076/celery
    def test_crash(self):

        class T(bgThread):

            def body(self):
                raise KeyError()

        with patch('os._exit') as _exit:
            with mock.stdouts():
                _exit.side_effect = ValueError()
                t = T()
                with self.assertRaises(ValueError):
                    t.run()
                _exit.assert_called_with(1)
コード例 #13
0
    def test_parser(self):
        x = detached_celeryd(self.app)
        p = x.create_parser('celeryd_detach')
        options, values = p.parse_args([
            '--logfile=foo',
            '--fake',
            '--enable',
            'a',
            'b',
            '-c1',
            '-d',
            '2',
        ])
        self.assertEqual(options.logfile, 'foo')
        self.assertEqual(values, ['a', 'b'])
        self.assertEqual(p.leftovers, ['--enable', '-c1', '-d', '2'])
        options, values = p.parse_args([
            '--fake',
            '--enable',
            '--pidfile=/var/pid/foo.pid',
            'a',
            'b',
            '-c1',
            '-d',
            '2',
        ])
        self.assertEqual(options.pidfile, '/var/pid/foo.pid')

        with mock.stdouts():
            with self.assertRaises(SystemExit):
                p.parse_args(['--logfile'])
            p.get_option('--logfile').nargs = 2
            with self.assertRaises(SystemExit):
                p.parse_args(['--logfile=a'])
            with self.assertRaises(SystemExit):
                p.parse_args(['--fake=abc'])

        assert p.get_option('--logfile').nargs == 2
        p.parse_args(['--logfile=a', 'b'])
        p.get_option('--logfile').nargs = 1
コード例 #14
0
ファイル: test_celeryd_detach.py プロジェクト: m4ddav3/celery
    def test_parser(self):
        x = detached_celeryd(self.app)
        p = x.create_parser("celeryd_detach")
        options, values = p.parse_args(["--logfile=foo", "--fake", "--enable", "a", "b", "-c1", "-d", "2"])
        self.assertEqual(options.logfile, "foo")
        self.assertEqual(values, ["a", "b"])
        self.assertEqual(p.leftovers, ["--enable", "-c1", "-d", "2"])
        options, values = p.parse_args(["--fake", "--enable", "--pidfile=/var/pid/foo.pid", "a", "b", "-c1", "-d", "2"])
        self.assertEqual(options.pidfile, "/var/pid/foo.pid")

        with mock.stdouts():
            with self.assertRaises(SystemExit):
                p.parse_args(["--logfile"])
            p.get_option("--logfile").nargs = 2
            with self.assertRaises(SystemExit):
                p.parse_args(["--logfile=a"])
            with self.assertRaises(SystemExit):
                p.parse_args(["--fake=abc"])

        assert p.get_option("--logfile").nargs == 2
        p.parse_args(["--logfile=a", "b"])
        p.get_option("--logfile").nargs = 1
コード例 #15
0
ファイル: test_log.py プロジェクト: m4ddav3/celery
    def test_logging_proxy(self):
        logger = self.setup_logger(loglevel=logging.ERROR, logfile=None, root=False)

        with mock.wrap_logger(logger) as sio:
            p = LoggingProxy(logger, loglevel=logging.ERROR)
            p.close()
            p.write("foo")
            self.assertNotIn("foo", sio.getvalue())
            p.closed = False
            p.write("foo")
            self.assertIn("foo", sio.getvalue())
            lines = ["baz", "xuzzy"]
            p.writelines(lines)
            for line in lines:
                self.assertIn(line, sio.getvalue())
            p.flush()
            p.close()
            self.assertFalse(p.isatty())

            with mock.stdouts() as (stdout, stderr):
                with in_sighandler():
                    p.write("foo")
                    self.assertTrue(stderr.getvalue())