vkwave icon indicating copy to clipboard operation
vkwave copied to clipboard

[БАГ]: Исключение при получении списка всех альбомов пользователя включая системные

Open AKCEJIb opened this issue 1 year ago • 0 comments

Чеклист

  • [x] Я убедился, что похожая проблема еще не была описана

  • VKWave установлен из (выберите один вариант)

    • [x] PyPI
    • [ ] Github

Описание

Получение всех альбомов включая системные (при использовании need_system=True) выбрасывает исключение парсинга модели PhotosGetAlbumsResponse.

Конкретно не могут быть распаршены поля в PhotosPhotoAlbumFull.

Трейсбек (лог с ошибкой)

Exception has occurred: ValidationError
6 validation errors for PhotosGetAlbumsResponse
response -> items -> 0 -> created
  field required (type=value_error.missing)
response -> items -> 0 -> updated
  field required (type=value_error.missing)
response -> items -> 1 -> created
  field required (type=value_error.missing)
response -> items -> 1 -> updated
  field required (type=value_error.missing)
response -> items -> 2 -> created
  field required (type=value_error.missing)
response -> items -> 2 -> updated
  field required (type=value_error.missing)

Код, вызвающий ошибку

token = UserSyncSingleToken(Token(text_token))
async with API(tokens=token) as api:
    api_ctx = api.get_context()

    test = await api_ctx.photos.get_albums(need_system=True)

    print(test)

Ожидаемое поведение

Модель должна парсится без проблем

Решение

Системные альбомы не имеют полей created и updated, поэтому эти поля нужно сделать опциональными в PhotosPhotoAlbumFull

P.S: прошу, покройте код юнит-тестами 🧪

AKCEJIb avatar Nov 24 '22 23:11 AKCEJIb