prostomarkeloff / vkwave

Asynchronous framework for building high-performance & easy to scale projects interacting with VK's API.
MIT License
236 stars 34 forks source link

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

Open AKCEJIb opened 1 year ago

AKCEJIb commented 1 year ago

Чеклист

Описание

Получение всех альбомов включая системные (при использовании 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: прошу, покройте код юнит-тестами 🧪