[#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_async
method response and returns the actualTokenResponse
instance.There is also a fix for the InvokeResponse result in the
process_activity
method, which now will be returning the body serialized.Also, two new unit tests were included to address these fixes.
Specific Changes
TokenResponse
frombotframework.connector.token_api.models
asConnectorTokenResponse
named class due to existingTokenResponse
frombot.builder.schema
.invoke_response.value
inprocess_activity_with_identity
with a new instance with the body serialized.exchange_token_from_credentials
method for evaluating with theConnectorTokenResponse
and returning theTokenResponse
instance._create_token_api_client
method in theAdapterUnderTest
class to mock theexchange_async
method.test_process_activity_with_identity_token_exchange_invoke_response
that will evaluate that the InvokeResponse comes serialized.test_exchange_token_from_credentials
that will evaluate that returns theTokenResponse
correctly.Testing