if iscoroutine(coro):
filename = coro.gi_code.co_filename
if coro.gi_frame is not None:
- text += ' at %s:%s' % (filename, coro.gi_frame.f_lineno)
+ lineno = coro.gi_frame.f_lineno
+ text += ' at %s:%s' % (filename, lineno)
else:
- text += ' done at %s' % filename
+ lineno = coro.gi_code.co_firstlineno
+ text += ' done at %s:%s' % (filename, lineno)
res = res[:i] + '(<{}>)'.format(text) + res[i:]
return res
self.assertRaises(asyncio.CancelledError,
self.loop.run_until_complete, t)
self.assertEqual(repr(t),
- 'Task(<notmuch done at %s>)<CANCELLED>' % filename)
+ 'Task(<notmuch done at %s:%s>)<CANCELLED>'
+ % (filename, lineno))
t = asyncio.Task(notmuch(), loop=self.loop)
self.loop.run_until_complete(t)
self.assertEqual(repr(t),
- "Task(<notmuch done at %s>)<result='abc'>" % filename)
+ "Task(<notmuch done at %s:%s>)<result='abc'>"
+ % (filename, lineno))
def test_task_repr_custom(self):
@asyncio.coroutine