Python 为登录django创建测试脚本
请帮帮我。我目前的任务是为登录方法创建一个测试脚本 这是我正在测试的登录方法Python 为登录django创建测试脚本,python,django,unit-testing,django-testing,Python,Django,Unit Testing,Django Testing,请帮帮我。我目前的任务是为登录方法创建一个测试脚本 这是我正在测试的登录方法 class AuthViewModel(): fixture = [user] user_name = 'usera' password = '12345678' def login_page(self, userName, password, request): """ Login by ID &
class AuthViewModel():
fixture = [user]
user_name = 'usera'
password = '12345678'
def login_page(self, userName, password, request):
"""
Login by ID & PWD
"""
# Get user by name & password
self.user = authenticate(username=userName, password=password)
if self.user is not None:
if self.user.is_active:
# Login by Django
login(request, self.user)
else:
# User not active
self.message = "User is not actived yet"
else:
# User not exist
self.message = "User name or password is incorrect"
这是我做的测试脚本
def test_login_page(self):
"""Test log in
"""
actauth = AuthViewModel()
actauth.actinbox_login(self.user_name, self.password, request)
self.assertEqual(actauth.message, 'User name or password is incorrect')
这是我的问题,我收到了错误消息
NameError: name 'request' is not defined
如何定义“请求”?您需要创建一个具有 RequestFactory与测试客户端共享相同的API。然而, RequestFactory提供了一种 生成可以用作第一个参数的请求实例 任何观点。这意味着您可以使用与测试相同的方法测试视图函数 您可以测试任何其他函数–作为一个黑匣子,使用完全已知的 输入,测试特定输出 所以基本上
factory = RequestFactory()
request = factory.get('/your/login/page/')
actauth = AuthViewModel()
actauth.actinbox_login(self.user_name, self.password, request)
self.assertEqual(actauth.message, 'User name or password is incorrect')
很高兴能有所帮助。请允许我谦虚地建议将答案标记为正确。可能对将来登陆这里的人有用,我们都会得到无用的互联网点:-)是的,我会的我真的很想成为一个像你一样更好的程序员,我也可以帮助别人。哦,我很确定你自己也是一个很好的程序员。随着时间的推移,你自然会获得经验。