def disable(*args, **kwargs): prev_out, prev_err = sys.stdout, sys.stderr prev_rout, prev_rerr = sys.__stdout__, sys.__stderr__ sys.stdout = sys.__stdout__ = WhateverIO() sys.stderr = sys.__stderr__ = WhateverIO() try: return fun(*args, **kwargs) finally: sys.stdout = prev_out sys.stderr = prev_err sys.__stdout__ = prev_rout sys.__stderr__ = prev_rerr
def test_run(self, inspect_): out, err = WhateverIO(), WhateverIO() ins = inspect_.return_value = Mock() ins.run.return_value = [] s = status(self.app, stdout=out, stderr=err) with self.assertRaises(Error): s.run() ins.run.return_value = ['a', 'b', 'c'] s.run() self.assertIn('3 nodes online', out.getvalue()) s.run(quiet=True)
def test_write_reread_fails(self, open_, fdopen, osopen, getpid, fsync): getpid.return_value = 1816 osopen.return_value = 13 w = fdopen.return_value = WhateverIO() w.close = Mock() r = open_.return_value = WhateverIO() r.write('11816\n') r.seek(0) p = Pidfile('/var/pid') with self.assertRaises(LockFailed): p.write_pid()
def test_run(self, migrate_tasks): out = WhateverIO() m = migrate(app=self.app, stdout=out, stderr=WhateverIO()) with self.assertRaises(TypeError): m.run() self.assertFalse(migrate_tasks.called) m.run('memory://foo', 'memory://bar') self.assertTrue(migrate_tasks.called) state = Mock() state.count = 10 state.strtotal = 30 m.on_migrate_task(state, {'task': 'tasks.add', 'id': 'ID'}, None) self.assertIn('10/30', out.getvalue())
def test_run(self, real): out = WhateverIO() i = inspect(app=self.app, stdout=out) with self.assertRaises(Error): i.run() with self.assertRaises(Error): i.run('help') with self.assertRaises(Error): i.run('xyzzybaz') i.run('ping') self.assertTrue(real.called) i.run('ping', destination='foo,bar') self.assertEqual(real.call_args[1]['destination'], ['foo', 'bar']) self.assertEqual(real.call_args[1]['timeout'], 0.2) callback = real.call_args[1]['callback'] callback({'foo': {'ok': 'pong'}}) self.assertIn('OK', out.getvalue()) instance = real.return_value = Mock() instance.ping.return_value = None with self.assertRaises(Error): i.run('ping') out.seek(0) out.truncate() i.quiet = True i.say_chat('<-', 'hello') self.assertFalse(out.getvalue())
def test_get_avail_port(self, sock): out = WhateverIO() sock.return_value.accept.return_value = (Mock(), ['helu']) Rdb(out=out) with patch('celery.contrib.rdb.current_process') as curproc: curproc.return_value.name = 'PoolWorker-10' Rdb(out=out) err = sock.return_value.bind.side_effect = SockErr() err.errno = errno.ENOENT with self.assertRaises(SockErr): Rdb(out=out) err.errno = errno.EADDRINUSE with self.assertRaises(Exception): Rdb(out=out) called = [0] def effect(*a, **kw): try: if called[0] > 50: return True raise err finally: called[0] += 1 sock.return_value.bind.side_effect = effect Rdb(out=out)
def test_run(self): out = WhateverIO() h = help(app=self.app, stdout=out) h.parser = Mock() self.assertEqual(h.run(), EX_USAGE) self.assertTrue(out.getvalue()) self.assertTrue(h.usage('help')) h.parser.print_help.assert_called_with()
def test_run(self): l = list_(app=self.app, stderr=WhateverIO()) l.run('bindings') with self.assertRaises(Error): l.run(None) with self.assertRaises(Error): l.run('foo')
def test_run(self, send_task): a = call(app=self.app, stderr=WhateverIO(), stdout=WhateverIO()) a.run('tasks.add') self.assertTrue(send_task.called) a.run('tasks.add', args=dumps([4, 4]), kwargs=dumps({'x': 2, 'y': 2})) self.assertEqual(send_task.call_args[1]['args'], [4, 4]) self.assertEqual(send_task.call_args[1]['kwargs'], {'x': 2, 'y': 2}) a.run('tasks.add', expires=10, countdown=10) self.assertEqual(send_task.call_args[1]['expires'], 10) self.assertEqual(send_task.call_args[1]['countdown'], 10) now = datetime.now() iso = now.isoformat() a.run('tasks.add', expires=iso) self.assertEqual(send_task.call_args[1]['expires'], now) with self.assertRaises(ValueError): a.run('tasks.add', expires='foobaribazibar')
def test_run(self, purge_): out = WhateverIO() a = purge(app=self.app, stdout=out) purge_.return_value = 0 a.run(force=True) self.assertIn('No messages purged', out.getvalue()) purge_.return_value = 100 a.run(force=True) self.assertIn('100 messages', out.getvalue())
def test_write_pid(self, open_, fdopen, osopen, getpid, fsync): getpid.return_value = 1816 osopen.return_value = 13 w = fdopen.return_value = WhateverIO() w.close = Mock() r = open_.return_value = WhateverIO() r.write('1816\n') r.seek(0) p = Pidfile('/var/pid') p.write_pid() w.seek(0) self.assertEqual(w.readline(), '1816\n') self.assertTrue(w.close.called) getpid.assert_called_with() osopen.assert_called_with(p.path, platforms.PIDFILE_FLAGS, platforms.PIDFILE_MODE) fdopen.assert_called_with(13, 'w') fsync.assert_called_with(13) open_.assert_called_with(p.path)
def test_get_logger(self): t1 = self.createTask('c.unittest.t.t1') t1.push_request() try: logfh = WhateverIO() logger = t1.get_logger(logfile=logfh, loglevel=0) self.assertTrue(logger) t1.request.loglevel = 3 logger = t1.get_logger(logfile=logfh, loglevel=None) self.assertTrue(logger) finally: t1.pop_request()
def test_run(self): with patch('celery.result.AsyncResult.get') as get: out = WhateverIO() r = result(app=self.app, stdout=out) get.return_value = 'Jerry' r.run('id') self.assertIn('Jerry', out.getvalue()) get.return_value = 'Elaine' r.run('id', task=self.add.name) self.assertIn('Elaine', out.getvalue()) with patch('celery.result.AsyncResult.traceback') as tb: r.run('id', task=self.add.name, traceback=True) self.assertIn(str(tb), out.getvalue())
def test_run(self, purge_): out = WhateverIO() a = purge(app=self.app, stdout=out) purge_.return_value = 0 a.run(force=True) self.assertIn('No messages purged', out.getvalue()) purge_.return_value = 100 a.run(force=True) self.assertIn('100 messages', out.getvalue()) a.out = Mock(name='out') a.ask = Mock(name='ask') a.run(force=False) a.ask.assert_called_with(a.warn_prompt, ('yes', 'no'), 'no') a.ask.return_value = 'yes' a.run(force=False)
def test_rdb(self, get_avail_port): sock = Mock() get_avail_port.return_value = (sock, 8000) sock.accept.return_value = (Mock(), ['helu']) out = WhateverIO() with Rdb(out=out) as rdb: self.assertTrue(get_avail_port.called) self.assertIn('helu', out.getvalue()) # set_quit with patch('sys.settrace') as settrace: rdb.set_quit() settrace.assert_called_with(None) # set_trace with patch('celery.contrib.rdb.Pdb.set_trace') as pset: with patch('celery.contrib.rdb._frame'): rdb.set_trace() rdb.set_trace(Mock()) pset.side_effect = SockErr pset.side_effect.errno = errno.ENOENT with self.assertRaises(SockErr): rdb.set_trace() # _close_session rdb._close_session() rdb.active = True rdb._handle = None rdb._client = None rdb._sock = None rdb._close_session() # do_continue rdb.set_continue = Mock() rdb.do_continue(Mock()) rdb.set_continue.assert_called_with() # do_quit rdb.set_quit = Mock() rdb.do_quit(Mock()) rdb.set_quit.assert_called_with()
def setup(self): self.fh = WhateverIO() self.app = Celery(broker='memory://', set_as_current=False) self.adm = self.create_adm() self.shell = AMQShell(connect=self.adm.connect, out=self.fh)
def test_list_bindings_no_support(self): l = list_(app=self.app, stderr=WhateverIO()) management = Mock() management.get_bindings.side_effect = NotImplementedError() with self.assertRaises(Error): l.list_bindings(management)
def setup(self): self.fh = WhateverIO() self.adm = self.create_adm() self.shell = AMQShell(connect=self.adm.connect, out=self.fh)
def test_run(self): out = WhateverIO() r = report(app=self.app, stdout=out) self.assertEqual(r.run(), EX_OK) self.assertTrue(out.getvalue())
def setup(self): self.fh = WhateverIO() self.env = {} self.t = MultiTool(env=self.env, fh=self.fh)
def setup(self): self.out = WhateverIO() self.err = WhateverIO() self.cmd = Command(self.app, stdout=self.out, stderr=self.err)
def setup(self): self.out = WhateverIO() self.dumper = Dumper(out=self.out)
def test_to_dot(self): s = WhateverIO() self.graph1().to_dot(s) self.assertTrue(s.getvalue())