Я тестирую маршрут GET, чтобы проверить, равен ли возвращаемый Json моему списку строк. У моего маршрута есть декоратор @jwt_required, и для проверки пользователя нужен токен. Я издевался над jtw_required и моим ldap.get_group_members. Проблема в том, что я получаю эту ошибку:
AssertionError: {'msg': 'Not enough segments'} not found in ['Philip J. Fry', 'Turanga Leela', 'Bender Bending Rodr\\xc3\\xadguez']
Я думаю, это потому, что мне нужно проверить токен, но я не знаю, как это сделать.
GET Route:
@jwt_required
def user_list():
list_1 = []
users = ldap.get_group_members('ship_crew')
for user in users:
list_1.append(str(user).split(",")[0].split("=")[1])
return jsonify(list_1)
Контрольный пример:
class FlaskLogin(unittest.TestCase):
@patch('dev_maintenance.user_list.jwt_required',return_value=None)
@patch('dev_maintenance.user_list.ldap.get_group_members',return_value =false)
def test_get_users(self, get_group_members, jtw_required):
jtw_required.verify.return_value = False
get_group_members.verify.return_value = True
user_list = ["Philip J. Fry","Turanga Leela","Bender Bending Rodr\\xc3\\xadguez" ]
valid_credentials = base64.b64encode(b'user:pass').decode('utf-8')
tester = app.test_client(self)
with tester as client:
response = client.get(
'/users',
content_type='application/json',
headers={'Authorization': 'Bearer ' + valid_credentials},
follow_redirects=True)
json_resp = json.loads(response.data.decode('utf-8'))
self.assertIn(json_resp, user_list)