У меня есть класс ...
some_class.py
from twilio.rest import Client
class SomeClass:
def __init__(self):
self.client = Client(ENV['sid'], ENV['token'])
def send(self):
response = self.client.messages.send(body='Hello!', from_='+15005550006', to='+15005550006')
print(f'Sent message: {response.body}')
... и тест ...
test_some_class.py
from some_class import SomeClass
def test_send(db): # db is a fixture
t = SomeClass()
t.send()
Любая попытка использовать t.send()
из теста, пока я запускаю этот тест, дает мне: requests.exceptions.ConnectionError: Connection refused by Responses: POST https://api.twilio.com/2010-04-01/Accounts/My_SID/Messages.json doesn't match Responses Mock
С другой стороны, если я просто вставлю что-нибудь глупое, например:
some_class.py
from twilio.rest import Client
c = Client(ENV['sid'], ENV['token'])
response = c.messages.send(body='Hello!', from_='+15005550006', to='+15005550006')
print(f'Sent message: {response.body})
class SomeClass:
...
В верхней части этого класса я всегда получаюсоответствующий оператор печати (из SMS-сообщения, отправленного за пределы определения класса; один внутри него всегда терпит неудачу).
Я до конца пытаюсь понять, почему! Мне просто кажется, что Twilio отказывается от всего, что запускается из PyTest, из класса, но у меня есть нет идея почему (я пробовал так много разных вариантов перемещения вещей вокруг). Может кто-нибудь пролить некоторый свет на это?
Редактировать: Итак, вызов также работает, если он сделан в классе, но вне метода:
from twilio.rest import Client
class SomeClass:
c = Client(ENV['sid'], ENV['token'])
response = c.messages.send(body='Hello!', from_='+15005550006',to='+15005550006')
print(f'Sent message: {response.body})
...
Работает нормально,