Skip to content

refresh_oauth2_token silently fails if can_refresh_access_token fails type validation #68

Closed
@benefacto

Description

@benefacto

Which version of the SDK are you using?

1.10.0

A quick summary and/or background

Discovered this issue when debugging refresh token issues with @RettBehrens .
If scope is passed as a str (or another type) rather than a list in the token set to the helper method store_xero_oauth2_token, then refresh_oauth2_token will return None rather than the refreshed token set.

Steps to reproduce

  1. Pass scopes as a space delimited string within the token set passed to an store_xero_oauth2_token
  2. Call refresh_oauth2_token
  3. Verify the return value of refresh_oauth2_token is None

What you expected would happen

  1. Pass scopes as a space delimited string within the token set passed to an store_xero_oauth2_token
  2. Call refresh_oauth2_token
  3. can_refresh_access_token raises an error describing why the token cannot be refreshed: in this case, the error should state that scope must be a list of str

What actually happens

  1. Pass scopes as a space delimited string within the token set passed to an store_xero_oauth2_token
  2. Call refresh_oauth2_token
  3. Since the return value of refresh_oauth2_token is not needed since store_xero_oauth2_token is called internally within refresh_oauth2_token, the issue is invisible and a silent failure occurs
  4. The issue becomes known when the access token expires since it can never be refreshed due to failing type validation

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions