Skip to content

Commit 4a5d219

Browse files
removed the tests by mistake
1 parent c799aab commit 4a5d219

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

tests/sentry/api/test_authentication.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,72 @@ def test_no_match(self):
210210
self.auth.authenticate(request)
211211

212212

213+
@control_silo_test
214+
class TestOrgScopedAppTokenAuthentication(TestCase):
215+
def setUp(self):
216+
super().setUp()
217+
218+
self.auth = UserAuthTokenAuthentication()
219+
self.org = self.create_organization(owner=self.user)
220+
self.another_org = self.create_organization(owner=self.user)
221+
self.api_token = ApiToken.objects.create(
222+
token_type=AuthTokenType.USER,
223+
user=self.user,
224+
scoping_organization_id=self.org.id,
225+
)
226+
self.token = self.api_token.plaintext_token
227+
228+
def test_authenticate_correct_org(self):
229+
request = HttpRequest()
230+
request.META["HTTP_AUTHORIZATION"] = f"Bearer {self.token}"
231+
request.path_info = f"/api/0/organizations/{self.org.slug}/projects/"
232+
233+
result = self.auth.authenticate(request)
234+
assert result is not None
235+
236+
user, auth = result
237+
assert user.is_anonymous is False
238+
assert user.id == self.user.id
239+
assert AuthenticatedToken.from_token(auth) == AuthenticatedToken.from_token(self.api_token)
240+
241+
def test_authenticate_incorrect_org(self):
242+
request = HttpRequest()
243+
request.META["HTTP_AUTHORIZATION"] = f"Bearer {self.token}"
244+
request.path_info = f"/api/0/organizations/{self.another_org}/projects/"
245+
246+
with pytest.raises(AuthenticationFailed):
247+
self.auth.authenticate(request)
248+
249+
def test_authenticate_user_level_endpoints(self):
250+
request = HttpRequest()
251+
request.META["HTTP_AUTHORIZATION"] = f"Bearer {self.token}"
252+
request.path_info = "/api/0/projects/"
253+
254+
with pytest.raises(AuthenticationFailed):
255+
self.auth.authenticate(request)
256+
257+
def test_authenticate_allowlist_endpoint(self):
258+
request = HttpRequest()
259+
request.META["HTTP_AUTHORIZATION"] = f"Bearer {self.token}"
260+
request.path_info = "/api/0/organizations/"
261+
262+
result = self.auth.authenticate(request)
263+
assert result is not None
264+
265+
user, auth = result
266+
assert user.is_anonymous is False
267+
assert user.id == self.user.id
268+
assert AuthenticatedToken.from_token(auth) == AuthenticatedToken.from_token(self.api_token)
269+
270+
def test_no_match(self):
271+
request = HttpRequest()
272+
request.META["HTTP_AUTHORIZATION"] = "Bearer abc"
273+
request.path_info = f"/api/0/organizations/{self.another_org}/projects/"
274+
275+
with pytest.raises(AuthenticationFailed):
276+
self.auth.authenticate(request)
277+
278+
213279
@django_db_all
214280
@pytest.mark.parametrize("internal", [True, False])
215281
def test_registered_relay(internal):

0 commit comments

Comments
 (0)