microsoft / microsoft/azure-devops-python-api

Profile object does not deserialize `core_attributes` correctly (?)

Open
#365 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
684
Forks
218
Avg merge
8d 10h
Merged PRs (30d)
1

Description

I am trying to get some profiles by id and I cannot figure out if there is a bug in this library or if I am not using it correctly, but when I get a profile with a call like:

profile_client = connection.clients_v6_0.get_profile_client()
a_profile = profile_client.get_profile(authenticated_user_id, details=True)

I see that data like the Avatar is coming back from the http request log

...
'Avatar': {'descriptor': {'attributeName': 'Avatar',
    'containerName': 'Core'},
   'value': {'value': 'iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGQSURBVFhH7ZUxSwQxEEb9Odb29va2cpWVWIqdjWB7FldoowhWilhpo811FoqdhYVgpaU/IfIC3zEXs8seZBBlBh6bTXKbl2SSW9pYnqS/RAh7E8LehLA3IexNCHsTwt6EsDf/X3h79TSNt27S2f40Q5k622dv/SK38bT1JZsrx7Nv1NprDBbm49Orl0TcnjzPhF+fPnKd7Us98fn+NVdfon6P92/V9hqDhJFFDGHKZfvO2vncOyLIEn2rTNCvuTArinCtrYZWjgl2yZAGkm0qTH4Si+SZhFldosxxQJZ+zYUPRtd50FoqdCFhyuwMO2TbNRG+2VzYDm6xNwXYVbS/oR9hJ4ygJtFc+Gj37seAIGEGJuzhssKg7aesFNMEmwtzAxCkRq1d29snzDvSlJmgFWwuDH1XzxBhdofQbtm+LsJa5fLwwBBhUOpopYWLMCDNYHB5+JClePJO2D+PmnDX9egmLFhJhATv5YFUH1sHpETt8JaT6GNh4d8mhL0JYW9C2JsQ9iaEvQlhb0LYl0n6Bknoed5LlvAdAAAAAElFTkSuQmCC',
    'timeStamp': '2020-12-09T16:53:10.5466667+00:00',
    'size': 'medium',
    'isAutoGenerated': True},
   'timeStamp': '2020-12-09T16:53:10.5466667+00:00'},
...

but if I serialize the Profile object, I do not see anything

a_profile.as_dict()

...
{'core_attributes': {'DisplayName': {},
  'PublicAlias': {},
  'EmailAddress': {},
  'UnconfirmedEmailAddress': {},
  'CountryName': {},
  'TermsOfServiceVersion': {},
  'TermsOfServiceAcceptDate': {},
  'Avatar': {},
  'ContactWithOffers': {}},
...

and even if I get the Avatar object from a_profile.core_attributes, the object does not seem to contain anything.

Is there a problem with the library or I am not using it correctly?

Thanks a lot in advance e for your help.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the get_profile(..., details=True) call and compare the logged HTTP response with a_profile.as_dict() and a_profile.core_attributes. Trace how the returned core_attributes, especially Avatar, are represented during deserialization; done means the serialized Profile preserves the values present in the response.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.