[#1631][BotFrameworkAdapter] process_activity returns HTTP 412 error when exchanging a token #1632
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1631
Description
This PR fixes the issue found when exchanging a token from the Host to the Skill. The response status is 412 and the body's description
The bot is unable to exchange token. Proceed with regular login.The fix evaluates the correct
exchange_asyncmethod response and returns the actualTokenResponseinstance.There is also a fix for the InvokeResponse result in the
process_activitymethod, which now will be returning the body serialized.Also, two new unit tests were included to address these fixes.
Specific Changes
TokenResponsefrombotframework.connector.token_api.modelsasConnectorTokenResponsenamed class due to existingTokenResponsefrombot.builder.schema.invoke_response.valueinprocess_activity_with_identitywith a new instance with the body serialized.exchange_token_from_credentialsmethod for evaluating with theConnectorTokenResponseand returning theTokenResponseinstance._create_token_api_clientmethod in theAdapterUnderTestclass to mock theexchange_asyncmethod.test_process_activity_with_identity_token_exchange_invoke_responsethat will evaluate that the InvokeResponse comes serialized.test_exchange_token_from_credentialsthat will evaluate that returns theTokenResponsecorrectly.Testing