Avoiding race conditions in pre_save

remotes/origin/enhancement/email-actions
Alejandro Alonso 2014-06-17 16:34:11 +02:00
parent 37e61071bf
commit 57e1de23dc
2 changed files with 7 additions and 7 deletions

View File

@ -31,7 +31,7 @@ class OCCResourceMixin(object):
if current_version != param_version:
raise exc.WrongArguments({"version": "The version doesn't match with the current one"})
obj.version += 1
obj.version = models.F('version') + 1
super().pre_save(obj)

View File

@ -65,7 +65,7 @@ def test_invalid_concurrent_save_for_wiki_page(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
wiki_page = f.WikiPageFactory.create(project=project, owner=user)
wiki_page = f.WikiPageFactory.create(version=10, project=project, owner=user)
client.login(user)
url = reverse("wiki-detail", args=(wiki_page.id,))
@ -77,7 +77,7 @@ def test_valid_concurrent_save_for_wiki_page(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
wiki_page = f.WikiPageFactory.create(project=project, owner=user)
wiki_page = f.WikiPageFactory.create(version=10, project=project, owner=user)
client.login(user)
url = reverse("wiki-detail", args=(wiki_page.id,))
@ -91,7 +91,7 @@ def test_invalid_concurrent_save_for_us(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
userstory = f.UserStoryFactory.create(project=project)
userstory = f.UserStoryFactory.create(version=10, project=project)
client.login(user)
url = reverse("userstories-detail", args=(userstory.id,))
@ -103,7 +103,7 @@ def test_valid_concurrent_save_for_us(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
userstory = f.UserStoryFactory.create(project=project)
userstory = f.UserStoryFactory.create(version=10, project=project)
client.login(user)
url = reverse("userstories-detail", args=(userstory.id,))
@ -118,7 +118,7 @@ def test_invalid_concurrent_save_for_task(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
task = f.TaskFactory.create(project=project)
task = f.TaskFactory.create(version=10, project=project)
client.login(user)
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"
@ -132,7 +132,7 @@ def test_valid_concurrent_save_for_task(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
membership = f.MembershipFactory.create(project=project, user=user)
task = f.TaskFactory.create(project=project)
task = f.TaskFactory.create(version=10, project=project)
client.login(user)
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"