mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-06 12:14:28 +08:00
50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
[CASE test_transaction_atomic]
|
|
|
|
from django.db import transaction
|
|
|
|
with transaction.atomic():
|
|
pass
|
|
|
|
with transaction.atomic(using="mydb"):
|
|
pass
|
|
|
|
with transaction.atomic(using="mydb", savepoint=False):
|
|
pass
|
|
|
|
@transaction.atomic()
|
|
def decorated_func(param1: str, param2: int) -> bool:
|
|
pass
|
|
|
|
# Ensure that the function's type is preserved
|
|
reveal_type(decorated_func) # N: Revealed type is 'def (param1: builtins.str, param2: builtins.int) -> builtins.bool'
|
|
|
|
@transaction.atomic(using="mydb")
|
|
def decorated_func_using(param1: str, param2: int) -> bool:
|
|
pass
|
|
|
|
# Ensure that the function's type is preserved
|
|
reveal_type(decorated_func_using) # N: Revealed type is 'def (param1: builtins.str, param2: builtins.int) -> builtins.bool'
|
|
|
|
class ClassWithAtomicMethod:
|
|
# Bare decorator
|
|
@transaction.atomic
|
|
def atomic_method1(self, abc: int) -> str:
|
|
pass
|
|
|
|
@transaction.atomic(savepoint=True)
|
|
def atomic_method2(self):
|
|
pass
|
|
|
|
@transaction.atomic(using="db", savepoint=True)
|
|
def atomic_method3(self, myparam: str) -> int:
|
|
pass
|
|
|
|
ClassWithAtomicMethod().atomic_method1("abc") # E: Argument 1 to "atomic_method1" of "ClassWithAtomicMethod" has incompatible type "str"; expected "int"
|
|
|
|
# Ensure that the method's type is preserved
|
|
reveal_type(ClassWithAtomicMethod().atomic_method1) # N: Revealed type is 'def (abc: builtins.int) -> builtins.str'
|
|
|
|
# Ensure that the method's type is preserved
|
|
reveal_type(ClassWithAtomicMethod().atomic_method3) # N: Revealed type is 'def (myparam: builtins.str) -> builtins.int'
|
|
|
|
[out] |