mirror of
https://github.com/BillyOutlast/posthog.git
synced 2026-02-04 03:01:23 +01:00
fix(err): fix router (#30282)
This commit is contained in:
@@ -11,7 +11,7 @@ pub fn upload(host: &str, directory: &PathBuf, _build_id: &Option<String>) -> Re
|
||||
let token = load_token().context("While starting upload command")?;
|
||||
|
||||
let url = format!(
|
||||
"{}/api/projects/{}/error_tracking/symbol_sets",
|
||||
"{}/api/environments/{}/error_tracking/symbol_sets",
|
||||
host, token.env_id
|
||||
);
|
||||
|
||||
|
||||
@@ -543,21 +543,21 @@ projects_router.register(
|
||||
["project_id"],
|
||||
)
|
||||
|
||||
projects_router.register(
|
||||
environments_router.register(
|
||||
r"error_tracking/symbol_sets",
|
||||
error_tracking.ErrorTrackingSymbolSetViewSet,
|
||||
"project_error_tracking_symbol_set",
|
||||
["team_id"],
|
||||
)
|
||||
|
||||
projects_router.register(
|
||||
environments_router.register(
|
||||
r"error_tracking/issue",
|
||||
error_tracking.ErrorTrackingIssueViewSet,
|
||||
"project_error_tracking_issue",
|
||||
["team_id"],
|
||||
)
|
||||
|
||||
projects_router.register(
|
||||
environments_router.register(
|
||||
r"error_tracking/stack_frames",
|
||||
error_tracking.ErrorTrackingStackFrameViewSet,
|
||||
"project_error_tracking_stack_frames",
|
||||
|
||||
@@ -64,13 +64,13 @@ class TestErrorTracking(APIBaseTest):
|
||||
|
||||
# no fingerprint
|
||||
response = self.client.get(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{deleted_issue_id}",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{deleted_issue_id}",
|
||||
)
|
||||
assert response.status_code == 404
|
||||
|
||||
# with fingerprint hint
|
||||
response = self.client.get(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{deleted_issue_id}?fingerprint={merged_fingerprint}",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{deleted_issue_id}?fingerprint={merged_fingerprint}",
|
||||
)
|
||||
assert response.status_code == 308
|
||||
assert response.json() == {"issue_id": str(merged_issue.id)}
|
||||
@@ -79,7 +79,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
def test_issue_fetch(self):
|
||||
issue = self.create_issue(["fingerprint"])
|
||||
|
||||
response = self.client.get(f"/api/projects/{self.team.id}/error_tracking/issue/{issue.id}")
|
||||
response = self.client.get(f"/api/environments/{self.team.id}/error_tracking/issue/{issue.id}")
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {
|
||||
@@ -96,7 +96,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
issue = self.create_issue(["fingerprint"])
|
||||
|
||||
response = self.client.patch(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{issue.id}", data={"status": "resolved"}
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{issue.id}", data={"status": "resolved"}
|
||||
)
|
||||
issue.refresh_from_db()
|
||||
|
||||
@@ -146,7 +146,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
assert ErrorTrackingIssue.objects.count() == 2
|
||||
|
||||
repsonse = self.client.post(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{issue_one.id}/merge", data={"ids": [issue_two.id]}
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{issue_one.id}/merge", data={"ids": [issue_two.id]}
|
||||
)
|
||||
|
||||
assert repsonse.status_code == 200
|
||||
@@ -167,30 +167,12 @@ class TestErrorTracking(APIBaseTest):
|
||||
# TODO - we could have the api validate these contents before uploading, if we wanted
|
||||
data = {"source_map": image, "minified": image}
|
||||
response = self.client.patch(
|
||||
f"/api/projects/{self.team.id}/error_tracking/symbol_sets/{symbol_set.id}",
|
||||
f"/api/environments/{self.team.id}/error_tracking/symbol_sets/{symbol_set.id}",
|
||||
data,
|
||||
format="multipart",
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||
|
||||
# def test_rejects_too_large_file_type(self) -> None:
|
||||
# symbol_set = ErrorTrackingSymbolSet.objects.create(
|
||||
# ref="https://app-static-prod.posthog.com/static/chunk-BPTF6YBO.js", team=self.team, storage_ptr=None
|
||||
# )
|
||||
# fifty_megabytes_plus_a_little = b"1" * (1024 * 1024 * 1024 + 1)
|
||||
# fake_big_file = SimpleUploadedFile(
|
||||
# name="large_source.js.map",
|
||||
# content=fifty_megabytes_plus_a_little,
|
||||
# content_type="text/plain",
|
||||
# )
|
||||
# response = self.client.put(
|
||||
# f"/api/projects/{self.team.id}/error_tracking/symbol_sets/{symbol_set.id}",
|
||||
# {"source_map": fake_big_file},
|
||||
# format="multipart",
|
||||
# )
|
||||
# self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST, response.json())
|
||||
# self.assertEqual(response.json()["detail"], "Source maps must be less than 50MB")
|
||||
|
||||
def test_rejects_upload_when_object_storage_is_unavailable(self) -> None:
|
||||
symbol_set = ErrorTrackingSymbolSet.objects.create(
|
||||
ref="https://app-static-prod.posthog.com/static/chunk-BPTF6YBO.js", team=self.team, storage_ptr=None
|
||||
@@ -199,7 +181,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
fake_big_file = SimpleUploadedFile(name="large_source.js.map", content=b"", content_type="text/plain")
|
||||
data = {"source_map": fake_big_file, "minified": fake_big_file}
|
||||
response = self.client.put(
|
||||
f"/api/projects/{self.team.id}/error_tracking/symbol_sets/{symbol_set.id}",
|
||||
f"/api/environments/{self.team.id}/error_tracking/symbol_sets/{symbol_set.id}",
|
||||
data,
|
||||
format="multipart",
|
||||
)
|
||||
@@ -222,7 +204,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
self.assertEqual(ErrorTrackingSymbolSet.objects.count(), 3)
|
||||
|
||||
# it only fetches symbol sets for the specified team
|
||||
response = self.client.get(f"/api/projects/{self.team.id}/error_tracking/symbol_sets")
|
||||
response = self.client.get(f"/api/environments/{self.team.id}/error_tracking/symbol_sets")
|
||||
self.assertEqual(len(response.json()["results"]), 2)
|
||||
|
||||
def test_fetching_stack_frames(self):
|
||||
@@ -242,16 +224,16 @@ class TestErrorTracking(APIBaseTest):
|
||||
self.assertEqual(ErrorTrackingStackFrame.objects.count(), 3)
|
||||
|
||||
# it only fetches stack traces for the specified team
|
||||
response = self.client.get(f"/api/projects/{self.team.id}/error_tracking/stack_frames")
|
||||
response = self.client.get(f"/api/environments/{self.team.id}/error_tracking/stack_frames")
|
||||
self.assertEqual(len(response.json()["results"]), 2)
|
||||
|
||||
# fetching can be filtered by raw_ids
|
||||
response = self.client.get(f"/api/projects/{self.team.id}/error_tracking/stack_frames?raw_ids=raw_id")
|
||||
response = self.client.get(f"/api/environments/{self.team.id}/error_tracking/stack_frames?raw_ids=raw_id")
|
||||
self.assertEqual(len(response.json()["results"]), 1)
|
||||
|
||||
# fetching can be filtered by symbol set
|
||||
response = self.client.get(
|
||||
f"/api/projects/{self.team.id}/error_tracking/stack_frames?symbol_set={symbol_set.id}"
|
||||
f"/api/environments/{self.team.id}/error_tracking/stack_frames?symbol_set={symbol_set.id}"
|
||||
)
|
||||
self.assertEqual(len(response.json()["results"]), 1)
|
||||
self.assertEqual(response.json()["results"][0]["symbol_set_ref"], symbol_set.ref)
|
||||
@@ -261,7 +243,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
|
||||
self.assertEqual(ErrorTrackingIssueAssignment.objects.count(), 0)
|
||||
self.client.patch(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
data={"assignee": {"id": self.user.id, "type": "user"}},
|
||||
)
|
||||
# assigns the issue
|
||||
@@ -297,7 +279,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
)
|
||||
|
||||
self.client.patch(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
data={"assignee": None},
|
||||
)
|
||||
# deletes the assignment
|
||||
@@ -305,7 +287,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
|
||||
other_team = self.create_team_with_organization(organization=self.organization)
|
||||
response = self.client.patch(
|
||||
f"/api/projects/{other_team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
f"/api/environments/{other_team.id}/error_tracking/issue/{issue.id}/assign",
|
||||
data={"assignee": None},
|
||||
)
|
||||
# cannot assign issues from other teams
|
||||
@@ -319,7 +301,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
self.assertEqual(issue_two.status, ErrorTrackingIssue.Status.ACTIVE)
|
||||
|
||||
self.client.post(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/bulk",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/bulk",
|
||||
data={"ids": [issue_one.id, issue_two.id], "action": "set_status", "status": "resolved"},
|
||||
)
|
||||
|
||||
@@ -338,7 +320,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
user_group.members.set([self.user])
|
||||
|
||||
self.client.post(
|
||||
f"/api/projects/{self.team.id}/error_tracking/issue/bulk",
|
||||
f"/api/environments/{self.team.id}/error_tracking/issue/bulk",
|
||||
data={
|
||||
"ids": [issue_one.id, issue_two.id],
|
||||
"action": "assign",
|
||||
@@ -360,7 +342,7 @@ class TestErrorTracking(APIBaseTest):
|
||||
def _get_error_tracking_issue_activity(
|
||||
self, error_tracking_issue_id: int, expected_status: int = status.HTTP_200_OK
|
||||
) -> dict:
|
||||
url = f"/api/projects/{self.team.id}/error_tracking/issue/{error_tracking_issue_id}/activity"
|
||||
url = f"/api/environments/{self.team.id}/error_tracking/issue/{error_tracking_issue_id}/activity"
|
||||
activity = self.client.get(url)
|
||||
self.assertEqual(activity.status_code, expected_status)
|
||||
return activity.json()
|
||||
|
||||
Reference in New Issue
Block a user