Python 3 Asyncio сопрограмма равенства - PullRequest
0 голосов
/ 11 октября 2018
class A:
  async def func2(self):
    pass

В модульном тесте я хочу утверждать, что определенная сопрограмма проходит проверку на равенство, т. Е.

arg1 == func2()

Однако, с подпрограммами связан адрес, связанный с ними:

'<coroutine object Class.func1 at 0x12341234>'

Существует ли канонический способ проверки равенства сопрограмм?Должен ли я просто пересмотреть представление __str__ сопрограммы?

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете получить немного лучше, чем сравнивать __repr__ s - вы можете сравнить базовый код объекта:

class A:
    async def func2(self):
        pass

a = A()
x = a.func2()
y = a.func2()

print(x == y)                   # False
print(x.cr_code is y.cr_code)   # True
...