Skip to content

Commit

Permalink
Bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
leshchenko1979 committed Nov 16, 2024
1 parent 3b3a5a5 commit 51b3364
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 4 deletions.
2 changes: 1 addition & 1 deletion fast_bitrix24/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.8.1"
__version__ = "1.8.2"
7 changes: 5 additions & 2 deletions fast_bitrix24/server_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,17 @@ def extract_errors(self):
def is_batch(self) -> bool:
return isinstance(self.result, dict) and "result" in self.result

def extract_from_single_response(self, result: dict):
def extract_from_single_response(self, result):
# Сначала проверяем, является ли result списком
if isinstance(result, list):
return result

# если результат вызова содержит только словарь из одного элемента {ключ: содержимое},
# то вернуть это содержимое.
# См. https://github.com/leshchenko1979/fast_bitrix24/issues/132

# метод `crm.stagehistory.list` возвращает dict["items", list] --
# разворачиваем его в список

return next(iter(result.values())) if self.is_nested(result) else result

@staticmethod
Expand Down
42 changes: 41 additions & 1 deletion tests/test_server_responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def test_call_several_success(bx_dummy):
assert len(results) == 3
assert isinstance(results[0], dict)

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


Expand Down Expand Up @@ -321,3 +321,43 @@ def test_crm_contact_add_batch(bx_dummy):

# Проверяем что результат - это ID созданного контакта
assert result == 58943


def test_crm_contact_list(bx_dummy):
response = {
'result': [
{
'ID': '10',
'NAME': 'Абдуалимова Татьяна Александровна',
'SECOND_NAME': None,
'LAST_NAME': None
}
],
'total': 1,
'time': {
'start': 1731743829.0188,
'finish': 1731743829.06444,
'duration': 0.045639991760253906,
'processing': 0.019975900650024414,
'date_start': '2024-11-16T10:57:09+03:00',
'date_finish': '2024-11-16T10:57:09+03:00',
'operating_reset_at': 1731744429,
'operating': 0
}
}

bx_dummy.srh = MockSRH(response)
results = bx_dummy.get_all(
'crm.contact.list',
{
'params': {
'select': ['ID', 'NAME', 'SECOND_NAME', 'LAST_NAME'],
'filter': {'=ID': ['10']}
}
}
)

assert isinstance(results, list)
assert len(results) == 1
assert results[0]['ID'] == '10'
assert results[0]['NAME'] == 'Абдуалимова Татьяна Александровна'

0 comments on commit 51b3364

Please sign in to comment.