Tuesday, September 4, 2012

Re: No ROLLBACK within TestCase on second database

On 5/09/2012 3:09pm, Kit Randel wrote:
> On 05/09/12 16:28, Mike Dewhirst wrote:
>> I asked about this a couple of weeks ago and the correct solution is
>> to use a TransactionTestCase
>>
> Hi Mike,
>
> I don't want to be explicitly test transactional behaviour, which I
> think is the intention behind TransactionTestCase. I just want each test
> running a transaction which rolls back on teardown. The django
> documentation for TestCase seems to suggest that TestCase should provide
> the behaviour I'm wanting:
>
> /class/TestCase
> Wraps each test in a transaction.
>
> https://docs.djangoproject.com/en/dev/topics/testing/#testcase

In your earlier post you mention Django 1.2 but the reference you quote
above is the dev documentation. There are differences in the docs but
I'm not sure what the underlying code differences might be.

You are right though. If you want to test commits and rollbacks
TransactionTestCase is your thing. By my reading of both 1.2 and dev
docs, vanilla TestCase imported from Django on the other hand should
handle commits and rollbacks itself.

As to your second database, I can't help because I have zero experience
with multiple databases. However, I think I have recently seen a caveat
in the docs somewhere about testing with multiple database. I haven't
looked in the 1.2 docs for some time.

Mike
>
> Explicitly calling connection._rollback() in a TransactionTestCase
> unfortunately has the same behaviour and only calls ROLLBACK on the
> 'default' database.
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment