mirror of https://github.com/zulip/zulip.git
compose_views: Add `savepoint=False` to avoid creating savepoints.
'compose_views' is used inside an outer db transaction created in 'update_user_group_backend'. `transaction.atomic()` block in 'compose_views' resulted in savepoint creation. This commit adds `savepoint=False` to avoid that.
This commit is contained in:
parent
9c9866461a
commit
0e67e4f1a1
|
@ -9,6 +9,7 @@ from unittest import mock
|
|||
import orjson
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse
|
||||
from django.utils.timezone import now as timezone_now
|
||||
from typing_extensions import override
|
||||
|
@ -4016,7 +4017,9 @@ class SubscriptionRestApiTest(ZulipTestCase):
|
|||
def thunk2() -> HttpResponse:
|
||||
raise JsonableError("random failure")
|
||||
|
||||
with self.assertRaises(JsonableError):
|
||||
with transaction.atomic(), self.assertRaises(JsonableError):
|
||||
# The atomic() wrapper helps to avoid JsonableError breaking
|
||||
# the test's transaction.
|
||||
compose_views([thunk1, thunk2])
|
||||
|
||||
user_profile = self.example_user("hamlet")
|
||||
|
|
|
@ -28,7 +28,6 @@ def dev_update_subgroups(
|
|||
assert BARRIER is not None
|
||||
try:
|
||||
with (
|
||||
transaction.atomic(),
|
||||
mock.patch("zerver.lib.user_groups.access_user_group_for_update") as m,
|
||||
):
|
||||
|
||||
|
|
|
@ -468,7 +468,7 @@ def compose_views(thunks: list[Callable[[], HttpResponse]]) -> dict[str, Any]:
|
|||
"""
|
||||
|
||||
json_dict: dict[str, Any] = {}
|
||||
with transaction.atomic():
|
||||
with transaction.atomic(savepoint=False):
|
||||
for thunk in thunks:
|
||||
response = thunk()
|
||||
json_dict.update(orjson.loads(response.content))
|
||||
|
|
|
@ -468,6 +468,7 @@ def remove_subgroups_from_group_backend(
|
|||
|
||||
@require_member_or_admin
|
||||
@typed_endpoint
|
||||
@transaction.atomic(durable=True)
|
||||
def update_subgroups_of_user_group(
|
||||
request: HttpRequest,
|
||||
user_profile: UserProfile,
|
||||
|
|
Loading…
Reference in New Issue