我有一个启动用户登录请求的视图功能
它看起来像这样:
def initiate_login(request):
# get request parameters
return check_user_and_send_otp(login_id)
然后,该请求由另一个函数处理
def check_user_and_send_otp(login_id):
# check if user exits
return send_otp_to_user(phone_number)
然后是另一个功能
def send_otp_to_user(phone_number):
# sends a message to user
return response
问题在于测试我的代码时,我不想在测试时向手机号码发送消息。
我的登录测试功能看起来有点像这样,是否可以在不更改代码的情况下进行模拟?
def test_login_initiator(self):
response = self.client.post(self.login_url, data=self.login_data, content_type="application/json", **self.headers)
self.assertEqual(response.status_code, 200)
其他人调用的所有这些功能都位于单独的模块中
答案 0 :(得分:0)
如果您不想在物理电话上实际收到消息,可以使用在线短信接收器。看看这个blog。
此外,您还可以通过Way2sms等其他免费在线服务发送消息。你只需要谷歌了解它们。要在Python中执行此操作,您需要使用urllib2 / requests和beautifulsoup进行Web解析,这是一个全新的问题。
或者您可以通过简单地注释掉邮件发件人代码或从函数返回true来跳过此功能。
如果您想生活危险,请考虑制作一个配置文件,它可以帮助您创建判断是否执行某些操作的开关。