﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
29303	non_atomic_requests decorator alters _non_atomic_requests attribute of original function	Alasdair Nicol	nobody	"When calling `non_atomic_requests` with a function, it alters the `_non_atomic_requests` attribute of the original function.

Here's an example:

{{{
from django.db import transaction

@transaction.non_atomic_requests(using='default')
def my_view(request):
    return HttpResponse('')

assert my_view._non_atomic_requests == {'default'}  # passes

wrapped_view = transaction.non_atomic_requests(using='other')

assert wrapped_view._non_atomic_requests == {'default', 'other'}  # passes
assert my_view._non_atomic_requests == {'default'}  # fails
}}}

I realise that this is a contrived example. It isn't an issue when `non_atomic_requests` is used as a decorator:

{{{
@transaction.non_atomic_requests(using='default')
@transaction.non_atomic_requests(using='other')
def my_view(request)
    return HttpResponse('')
}}}"	Bug	new	Database layer (models, ORM)	dev	Normal				Unreviewed	0	0	0	0	0	0
