While this can be done in my code, there are libraries that the project use 
that have "transaction.atomic" in them. For example, pretty popular 
django-role-permissions.
>From what I see in the documentation, there should be no problem to use 
transactions within transactions in TestCase.

On Tuesday, May 12, 2020 at 12:34:50 AM UTC+3, Aldian Fazrihady wrote:
>
> I don't think the subclass of TestCase need to use transaction.atomic. Why 
> can't you just remove the transaction.atomic? 
>
> Regards, 
>
> Aldian Fazrihady
> http://aldianfazrihady.com
>
> Pada tanggal Sel, 12 Mei 2020 04.02, Uri Kogan <[email protected] 
> <javascript:>> menulis:
>
>> Hello,
>>
>> I am using TestCase and trying to create an object during test.
>> There is a log activated on MySQL server, so I see all the queries being 
>> executed there.
>>
>> This "transaction.atomic" sets a SAVEPOINT in the database thinking that 
>> the transaction is already started. The problem is that there is no 
>> "TRANSACTION START". So, when exiting "with transaction.atomic()" block the 
>> whole thing crashes with "SAVEPOINT xxx DOES NOT EXIST"
>>
>> The following states that TestCase "tests within two nested atomic() 
>> blocks", so it should execute "TRANSACTION START"
>>
>> https://docs.djangoproject.com/en/3.0/topics/testing/tools/#django.test.TestCase
>>
>>     
>> from django.contrib.auth.models import User
>> from django.test import TestCase
>>
>>
>> class FooTest(TestCase):
>>     def test_bar(self):
>>         with transaction.atomic():
>>             user = User.objects.create_user(username="abc", 
>> password="pass")
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/ecff11bd-9d35-4130-9d3a-0d48f70af73f%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/ecff11bd-9d35-4130-9d3a-0d48f70af73f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/3741328a-941b-4864-a20d-5e2d9c4937d5%40googlegroups.com.

Reply via email to