Flaky test: tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py::OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 10m
- Merged PRs (30d)
- 635
Description
Failing test: `tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py::OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms`
Sentry sha: 3ae13ebdfdfbfd0d73e8a04d635b9ae4d95251de
Run: https://github.com/getsentry/sentry/actions/runs/22295043618
```
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:105: in _execute
return self.cursor.execute(sql, params)
[1m[31msrc/sentry/db/postgres/decorators.py[0m:16: in inner
return func(self, *args, **kwargs)
[1m[31msrc/sentry/db/postgres/base.py[0m:95: in execute
return self.cursor.execute(sql, params)
[1m[31mE psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "sentry_dashboard_pkey"[0m
[1m[31mE DETAIL: Key (id)=(67) already exists.[0m
[33mThe above exception was the direct cause of the following exception:[0m
[1m[31mtests/sentry/dashboards/endpoints/test_organization_dashboard_details.py[0m:772: in test_allow_delete_as_superuser_but_no_edit_perms
dashboard = Dashboard.objects.create(
[1m[31msrc/sentry/silo/base.py[0m:158: in override
return original_method(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/manager.py[0m:87: in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
[1m[31msrc/sentry/silo/base.py[0m:158: in override
return original_method(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/query.py[0m:665: in create
obj.save(force_insert=True, using=self.db)
[1m[31msrc/sentry/silo/base.py[0m:158: in override
return original_method(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/base.py[0m:902: in save
self.save_base(
[1m[31msrc/sentry/silo/base.py[0m:158: in override
return original_method(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/base.py[0m:1008: in save_base
updated = self._save_table(
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/base.py[0m:1169: in _save_table
results = self._do_insert(
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/base.py[0m:1210: in _do_insert
return manager._insert(
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/manager.py[0m:87: in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/query.py[0m:1873: in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
[1m[31m.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py[0m:1882: in execute_sql
cursor.execute(sql, params)
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:122: in execute
return super().execute(sql, params)
[1m[31m.venv/lib/python3.13/site-packages/sentry_sdk/utils.py[0m:1870: in runner
return original_function(*args, **kwargs)
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:79: in execute
return self._execute_with_wrappers(
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:92: in _execute_with_wrappers
return executor(sql, params, many, context)
[1m[31msrc/sentry/db/postgres/base.py[0m:70: in _execute__include_sql_in_error
return execute(sql, params, many, context)
[1m[31msrc/sentry/db/postgres/base.py[0m:58: in _execute__clean_params
return execute(sql, clean_bad_params(params), many, context)
[1m[31msrc/sentry/testutils/hybrid_cloud.py[0m:133: in __call__
return execute(*params)
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:100: in _execute
with self.db.wrap_database_errors:
[1m[31m.venv/lib/python3.13/site-packages/django/db/utils.py[0m:91: in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
[1m[31m.venv/lib/python3.13/site-packages/django/db/backends/utils.py[0m:105: in _execute
return self.cursor.execute(sql, params)
[1m[31msrc/sentry/db/postgres/decorators.py[0m:16: in inner
return func(self, *args, **kwargs)
[1m[31msrc/sentry/db/postgres/base.py[0m:95: in execute
return self.cursor.execute(sql, params)
[1m[31mE django.db.utils.IntegrityError: duplicate key value violates unique constraint "sentry_dashboard_pkey"[0m
[1m[31mE DETAIL: Key (id)=(67) already exists.[0m
[1m[31mE [0m
[1m[31mE SQL: INSERT INTO "sentry_dashboard" ("id", "title", "created_by_id", "organization_id", "date_added", "visits", "last_visited", "filters", "prebuilt_id") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, DEFAULT) RETURNING "sentry_dashboard"."id", "sentry_dashboard"."prebuilt_id"[0m
```
Contributor guide
Research direction
Start with tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py at line 772 and run OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms. Read the Dashboard creation in this test and the surrounding test setup, then investigate why PostgreSQL reports an existing id of 67. Done means the named test passes reliably without the duplicate-key failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, postgresql, python
- Domain
- backend, database, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100