Насмешка над методом, у которого есть параметр, возвращает пустой список - PullRequest
0 голосов
/ 03 октября 2019

У меня есть функция, которая получает список пользователей из локального ldap. Я хочу смоделировать эту функцию, чтобы проверить, равен ли возвращаемый json ожидаемый json. Если я не высмеиваю его, тест проходит успешно. Если я высмеиваю его, я получаю пустой список, и тест не пройден*

Мой юнит-тест:

@patch('dev_maintenance.user_list.ldap.get_group_members')
    def test_content_type(self, get_group_members):

        get_group_members.return_value
        test_client = app.test_client()
        valid_credentials = base64.b64encode(b'hermes:hermes').decode('utf-8')
        response = test_client.get('/users', follow_redirects=True, content_type='application/json',  headers={'Authorization': 'Bearer ' + valid_credentials})
        expected_json = ["Philip J. Fry", "Turanga Leela","Bender Bending Rodr\\xc3\\xadguez"]

        assert response.get_json() == expected_json

Ошибка:

>       assert response.get_json() == expected_json
E       AssertionError: assert [] == ['Philip J. Fry', 'Turanga L...Bending Rodr\\xc3\\xadguez']
E         Right contains more items, first extra item: 'Philip J. Fry'
E         Full diff:
E         - []
E         + ['Philip J. Fry', 'Turanga Leela', 'Bender Bending Rodr\\xc3\\xadguez']

Макет делает response.get_json () пустым, не знаю почему. Нужно ли где-то передавать параметр ('ship_crew')?

1 Ответ

0 голосов
/ 04 октября 2019

Я мог найти решение, необходимое для передачи токена и возвращаемого значения в проверяемом методе:

    def test_content_type_json_protected(self, get_group_members):

        with app.test_request_context():
            access_token = create_access_token('hermes')


        get_group_members.return_value = "cn=Philip J. Fry,ou=people,dc=planetexpress,dc=com", \
                                         "cn=Turanga Leela,ou=people,dc=planetexpress,dc=com", \
                                         "cn=Bender Bending Rodr\u00edguez,ou=people,dc=planetexpress,dc=com"
        test_client = app.test_client()
        valid_credentials = {'Authorization': 'Bearer {}'.format(access_token)}
        response = test_client.get('/users', follow_redirects=True, content_type='application/json',headers=valid_credentials)
        expected_json = ["Philip J. Fry", "Turanga Leela", "Bender Bending Rodr\u00edguez"]

        assert response.get_json() == expected_json
...