Loading django/db/transaction.py +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import warnings from functools import wraps from django.db import connections, DatabaseError, DEFAULT_DB_ALIAS from django.utils.decorators import available_attrs class TransactionManagementError(Exception): Loading Loading @@ -313,7 +314,7 @@ class Atomic(object): def __call__(self, func): @wraps(func) @wraps(func, assigned=available_attrs(func)) def inner(*args, **kwargs): with self: return func(*args, **kwargs) Loading tests/transactions/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,17 @@ class AtomicErrorsTests(TransactionTestCase): transaction.leave_transaction_management() class AtomicMiscTests(TransactionTestCase): def test_wrap_callable_instance(self): # Regression test for #20028 class Callable(object): def __call__(self): pass # Must not raise an exception transaction.atomic(Callable()) class IgnorePendingDeprecationWarningsMixin(object): def setUp(self): Loading Loading
django/db/transaction.py +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import warnings from functools import wraps from django.db import connections, DatabaseError, DEFAULT_DB_ALIAS from django.utils.decorators import available_attrs class TransactionManagementError(Exception): Loading Loading @@ -313,7 +314,7 @@ class Atomic(object): def __call__(self, func): @wraps(func) @wraps(func, assigned=available_attrs(func)) def inner(*args, **kwargs): with self: return func(*args, **kwargs) Loading
tests/transactions/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,17 @@ class AtomicErrorsTests(TransactionTestCase): transaction.leave_transaction_management() class AtomicMiscTests(TransactionTestCase): def test_wrap_callable_instance(self): # Regression test for #20028 class Callable(object): def __call__(self): pass # Must not raise an exception transaction.atomic(Callable()) class IgnorePendingDeprecationWarningsMixin(object): def setUp(self): Loading