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
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())
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())
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()
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())
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())
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_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()
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)
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
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
def test_filter_status(self): with override_stdouts() as (stdout, stderr): filter_status(State(), {'id': '1', 'task': 'add'}, Mock()) self.assertTrue(stdout.getvalue())
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())