I have found that when running this as a normal server, the rollback
DOES work. It's just in tests it doesn't work.

On 5 Aug, 17:27, Peter Bengtsson <pete...@gmail.com> wrote:
> Here's the models:
>
> # models.py
> class Article(models.Model):
>     title = models.CharField(max_length=100)
>
> # urls.py
> urlpatterns = patterns('',
>     (r'^delete-rolledback/$', delete_rolledback),
> )
>
> # views.py
> def delete_rolledback(request):
>     transaction.enter_transaction_management()
>     transaction.managed(True)
>     qs = Article.objects.all()
>     for article in qs:
>         if article.title.lower().startswith(request.GET.get
> ('startswith')):
>             article.delete()
>             break
>     transaction.rollback()
>     return HttpResponse("Rolled back!")
>
> # tests.py
> from django.test import TestCase
>
> from news.models import Article
>
> class SimpleTest(TestCase):
>     def setUp(self):
>         Article.objects.create(title=u'Abraham')
>         Article.objects.create(title=u'Ben')
>         Article.objects.create(title=u'Ancor')
>         Article.objects.create(title=u'Wat')
>
>         super(SimpleTest, self).setUp()
>
>     def test_deletion(self):
>         count_before = Article.objects.count()
>         assert count_before == 4
>         r = self.client.get('/news/delete-rolledback/',
>                             dict(startswith='a'))
>         assert r.content.count("Rolled back")
>         count_after = Article.objects.count()
>         assert count_after == 4, count_after
>
> When I run these tests (with postgres or with sqlite) I get this
> assertion error:
>
> Traceback (most recent call last):
> ...
> AssertionError: 3
>
> If someone more clued up than me could take a look at this and confirm
> that it is a Django bug I can start looking into explaining what's
> wrong and possibilities of a patch.
> I've found this ticket (http://code.djangoproject.com/ticket/4758)
> where someone has experienced similar problems when using Oracle. But
> only for Oracle; he claims the same code *works* with Postgres.
--~--~---------~--~----~------------~-------~--~----~
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to