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 -~----------~----~----~----~------~----~------~--~---