Beispiel #1
0
    def test_parser(self):
        x = detached_celeryd(self.app)
        p = x.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 override_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
Beispiel #2
0
    def test_logging_proxy(self):
        with restore_logging():
            logger = self.setup_logger(loglevel=logging.ERROR, logfile=None,
                                       root=False)

            with 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 override_stdouts() as (stdout, stderr):
                    with in_sighandler():
                        p.write('foo')
                        self.assertTrue(stderr.getvalue())
Beispiel #3
0
 def test_with_bogus_args(self):
     with override_stdouts() as (_, stderr):
         cmd = MockCommand(app=self.app)
         cmd.supports_args = False
         with self.assertRaises(SystemExit):
             cmd.execute_from_commandline(argv=['--bogus'])
         self.assertTrue(stderr.getvalue())
         self.assertIn('Unrecognized', stderr.getvalue())
Beispiel #4
0
 def test_with_bogus_args(self):
     with override_stdouts() as (_, stderr):
         cmd = MockCommand(app=self.app)
         cmd.supports_args = False
         with self.assertRaises(SystemExit):
             cmd.execute_from_commandline(argv=['--bogus'])
         self.assertTrue(stderr.getvalue())
         self.assertIn('Unrecognized', stderr.getvalue())
Beispiel #5
0
        def test_remove_if_stale_broken_pid(self):
            with override_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()
Beispiel #6
0
    def test_remove_if_stale_broken_pid(self):
        with override_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()
Beispiel #7
0
    def test_setup_logger_no_handlers_stream(self):
        l = self.get_logger()
        l.handlers = []

        with override_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())
Beispiel #8
0
    def test_setup_logger_no_handlers_stream(self):
        with restore_logging():
            l = self.get_logger()
            l.handlers = []

            with override_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())
Beispiel #9
0
        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 override_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)
Beispiel #10
0
 def test_remove_if_stale_process_dead(self, kill):
     with override_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()
Beispiel #11
0
    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 override_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)
    def test_crash(self):
        class T(bgThread):
            def body(self):
                raise KeyError()

        with patch('os._exit') as _exit:
            with override_stdouts():
                _exit.side_effect = ValueError()
                t = T()
                with self.assertRaises(ValueError):
                    t.run()
                _exit.assert_called_with(1)
Beispiel #13
0
 def test_remove_if_stale_process_dead(self, kill):
     with override_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()
Beispiel #14
0
    def test_crash(self):

        class T(bgThread):

            def body(self):
                raise KeyError()

        with patch('os._exit') as _exit:
            with override_stdouts():
                _exit.side_effect = ValueError()
                t = T()
                with self.assertRaises(ValueError):
                    t.run()
                _exit.assert_called_with(1)
Beispiel #15
0
    def test_parser(self):
        x = detached_celeryd(self.app)
        p = x.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"])

        with override_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
Beispiel #16
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"])
        print(p.option_list)
        print("O: %r V: %r" % (vars(options), values))
        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 override_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
Beispiel #17
0
 def test_filter_status(self):
     with override_stdouts() as (stdout, stderr):
         filter_status(State(), {'id': '1', 'task': 'add'}, Mock())
         self.assertTrue(stdout.getvalue())
Beispiel #18
0
 def test_warn_deprecated(self):
     with override_stdouts() as (stdout, _):
         __main__._warn_deprecated('YADDA YADDA')
         self.assertIn('command is deprecated', stdout.getvalue())
         self.assertIn('YADDA YADDA', stdout.getvalue())
Beispiel #19
0
 def test_warn_deprecated(self):
     with override_stdouts() as (stdout, _):
         __main__._warn_deprecated('YADDA YADDA')
         self.assertIn('command is deprecated', stdout.getvalue())
         self.assertIn('YADDA YADDA', stdout.getvalue())
Beispiel #20
0
 def test_filter_status(self):
     with override_stdouts() as (stdout, stderr):
         filter_status(State(), {'id': '1', 'task': 'add'}, Mock())
         self.assertTrue(stdout.getvalue())