Я издевался над методом внутри своей функции входа в систему, чтобы не использовать соединение lpdap.Теперь я не могу установить ложное значение макета, он всегда возвращает истину.Даже если я вставлю неверные учетные данные, он всегда возвращает мне токен, в то время как я хочу получить ответное сообщение «неверные учетные данные». Любая помощь?
Функция входа:
def login():
user = request.form['user']
passwd = request.form['passwd']
test = ldap.bind_user(user, passwd)
if test is None or passwd == '':
response = jsonify(message='Invalid Credentials')
return response ,401
access_token = create_access_token(identity=user)
return jsonify(access_token=access_token), 200
Контрольный пример:
#Test to check if we get a token when the user logs in
@patch('dev_maintenance.active_directory.ldap.bind_user')
def test_token_return(self, bind_user):
bind_user.verify.return_value = True
tester = app.test_client(self)
with tester as client:
response = client.post(
'/login',
data =dict(user="hermes", passwd ="hermes"),
follow_redirects=True)
self.assertIn(b'Invalid Credentials, response.data)
Теперь, если я изменил эту строку на False:
bind_user.verify.return_value = False
Он должен выполнить работу, но это не так, он возвращает true и поэтому принимает любые учетные данные.
тестовый вывод:
E AssertionError: b'Invalid Credentials' not found in b'{\n "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1Njk1MDU5OTQsIm5iZiI6MTU2OTUwNTk5NCwianRpIjoiOTg2YjQwNTYtODQyNC00ZDhjLTg2N2YtM2E3ODc4OWE4MTZjIiwiZXhwIjoxNTY5NTA2ODk0LCJpZGVudGl0eSI6Ik5vdXNlciIsImZyZXNoIjpmYWxzZSwidHlwZSI6ImFjY2VzcyJ9.RFKW2mSmqHbLtX8jBlxj9w1waug1wAe0uExPtAMkhkg"\n}\n'