diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2020-12-22 13:00:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-22 13:00:14 -0500 |
commit | a8026064755362fe3e5dc00f537606d340ce242a (patch) | |
tree | 6b5d28926d2571069675537a90d6f67c67bf0c06 /tests/rest/client/v1/test_login.py | |
parent | Refactor the CAS handler in prep for using the abstracted SSO code. (#8958) (diff) | |
download | synapse-a8026064755362fe3e5dc00f537606d340ce242a.tar.xz |
Support PyJWT v2.0.0. (#8986)
Tests were broken due to an API changing. The code used in Synapse proper should be compatible with both versions already.
Diffstat (limited to 'tests/rest/client/v1/test_login.py')
-rw-r--r-- | tests/rest/client/v1/test_login.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/rest/client/v1/test_login.py b/tests/rest/client/v1/test_login.py index 566776e97e..18932d7518 100644 --- a/tests/rest/client/v1/test_login.py +++ b/tests/rest/client/v1/test_login.py @@ -475,8 +475,12 @@ class JWTTestCase(unittest.HomeserverTestCase): self.hs.config.jwt_algorithm = self.jwt_algorithm return self.hs - def jwt_encode(self, token, secret=jwt_secret): - return jwt.encode(token, secret, self.jwt_algorithm).decode("ascii") + def jwt_encode(self, token: str, secret: str = jwt_secret) -> str: + # PyJWT 2.0.0 changed the return type of jwt.encode from bytes to str. + result = jwt.encode(token, secret, self.jwt_algorithm) + if isinstance(result, bytes): + return result.decode("ascii") + return result def jwt_login(self, *args): params = json.dumps( @@ -680,8 +684,12 @@ class JWTPubKeyTestCase(unittest.HomeserverTestCase): self.hs.config.jwt_algorithm = "RS256" return self.hs - def jwt_encode(self, token, secret=jwt_privatekey): - return jwt.encode(token, secret, "RS256").decode("ascii") + def jwt_encode(self, token: str, secret: str = jwt_privatekey) -> str: + # PyJWT 2.0.0 changed the return type of jwt.encode from bytes to str. + result = jwt.encode(token, secret, "RS256") + if isinstance(result, bytes): + return result.decode("ascii") + return result def jwt_login(self, *args): params = json.dumps( |