From c7e9cdce97a68ce14b695b05048abb48b4e65b56 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Wed, 12 Aug 2020 21:27:22 +0200 Subject: [PATCH] fix(py): Python 3 incompatibility of relay.auth --- py/sentry_relay/auth.py | 4 +++- py/tests/test_auth.py | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/py/sentry_relay/auth.py b/py/sentry_relay/auth.py index 9095fddbbf..ba38edf9a6 100644 --- a/py/sentry_relay/auth.py +++ b/py/sentry_relay/auth.py @@ -1,7 +1,7 @@ import json import uuid from sentry_relay._lowlevel import lib -from sentry_relay._compat import text_type, implements_to_string +from sentry_relay._compat import PY2, text_type, implements_to_string from sentry_relay.utils import ( RustObject, encode_str, @@ -68,6 +68,8 @@ def sign(self, value): def pack(self, data): packed = json.dumps(data, separators=(",", ":")) + if not PY2: + packed = packed.encode("utf8") return packed, self.sign(packed) def __str__(self): diff --git a/py/tests/test_auth.py b/py/tests/test_auth.py index d13caa0510..c0c3a768d9 100644 --- a/py/tests/test_auth.py +++ b/py/tests/test_auth.py @@ -9,6 +9,11 @@ def test_basic_key_functions(): assert pk.verify(b"some secret data", signature) assert not pk.verify(b"some other data", signature) + packed, signature = sk.pack({"foo": "bar"}) + pk.unpack(packed, signature) + with pytest.raises(sentry_relay.UnpackErrorBadSignature): + pk.unpack(b"haha", signature) + def test_challenge_response(): resp = sentry_relay.create_register_challenge(