Skip to content

Commit 29c3810

Browse files
committed
test refresh tokens serialization
1 parent f367a69 commit 29c3810

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

tests/sentry/api/serializers/test_apitoken.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
from sentry.api.serializers import ApiTokenSerializer
2+
from sentry.models.apitoken import ApiToken
3+
from sentry.silo.base import SiloMode
24
from sentry.testutils.cases import TestCase
5+
from sentry.testutils.helpers.options import override_options
6+
from sentry.testutils.silo import assume_test_silo_mode
37

48

59
class TestApiTokenSerializer(TestCase):
@@ -38,6 +42,33 @@ def test_when_flag_is_false(self) -> None:
3842
assert "token" not in serialized_object
3943

4044

45+
class TestRefreshTokens(TestApiTokenSerializer):
46+
def setUp(self) -> None:
47+
super().setUp()
48+
attrs = self._serializer.get_attrs(item_list=[self._token], user=self._user)
49+
attrs["application"] = None
50+
self._attrs = attrs
51+
52+
def test_no_refresh_token_on_user_token(self) -> None:
53+
serialized_object = self._serializer.serialize(
54+
obj=self._token, user=self._user, attrs=self._attrs
55+
)
56+
57+
assert "refreshToken" not in serialized_object
58+
59+
@override_options({"apitoken.save-hash-on-create": True})
60+
def test_refresh_token_on_non_user_token(self) -> None:
61+
with assume_test_silo_mode(SiloMode.CONTROL):
62+
token = ApiToken.objects.create(user=self._user)
63+
assert token.hashed_refresh_token is not None
64+
65+
serialized_object = self._serializer.serialize(
66+
obj=token, user=self._user, attrs=self._attrs
67+
)
68+
69+
assert "refreshToken" in serialized_object
70+
71+
4172
class TestLastTokenCharacters(TestApiTokenSerializer):
4273
def test_field_is_returned(self) -> None:
4374
attrs = self._serializer.get_attrs(item_list=[self._token], user=self._user)

0 commit comments

Comments
 (0)