Skip to content

Commit 2709b62

Browse files
Добавить комментарии
1 parent 85ee0a4 commit 2709b62

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

fast_bitrix24/user_request.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,13 +330,22 @@ async def run(self):
330330
return results[0] if results and is_single_item else results
331331

332332
def prepare_item_list(self):
333-
# добавим порядковый номер
333+
# При отправке батчей на сервер результаты приходят не в том порядке,
334+
# в котором они отправлялись. Для того, чтобы пользователь мог понять,
335+
# какой результат пришел по каждому конкретному элементу списка,
336+
# переданному в call(), нужно возвращать не результаты запроса общим списком,
337+
# где может быть нарушен порядок, а словарь, содержащий на результаты запроса
338+
# по каждому элементу списка.
339+
340+
# Для этого добавляем к каждому элементу списка ключ "__order",
341+
# который при извелечении результатов запросов будет возвращен пользователю
342+
# как ключ словаря с результатами.
343+
334344
self.item_list = [
335345
ChainMap(item, {self.ID_field_name: f"order{i:010}"})
336346
for i, item in enumerate(self.item_list)
337347
]
338348

339-
340349
class RawCallUserRequest:
341350
"""Отправляем на сервер один элемент, не обрабатывая его и не заворачивая в батчи.
342351

tests/test_server_responses.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,17 @@ def test_call_several_success(bx_dummy):
6767
from tests.real_responses.call_several_success import response
6868

6969
bx_dummy.srh = MockSRH(response)
70-
results = bx_dummy.call("crm.lead.get", [{"ID": 35943}, {"ID": 161}, {"ID": 171}])
70+
71+
ID_list = [161, 35943, 171]
72+
results = bx_dummy.call("crm.lead.get", [{"ID": ID} for ID in ID_list])
73+
7174
assert isinstance(results, tuple)
7275
assert len(results) == 3
7376
assert isinstance(results[0], dict)
7477

78+
# нужен какой-то другой тест для контроля порядока результатов
79+
# assert [result["ID"] for result in results] == ID_list, "Incorrect order of IDs"
80+
7581

7682
def test_call_list_empty(bx_dummy):
7783
from tests.real_responses.batch_list_empty import response

0 commit comments

Comments
 (0)