summaryrefslogtreecommitdiff
path: root/tests/select_for_update
diff options
context:
space:
mode:
authorMikhail Denisenko <denisenkom@gmail.com>2015-11-15 23:14:55 -0500
committerTim Graham <timograham@gmail.com>2016-09-09 11:57:38 -0400
commitbae64dd0f13ba247448197ecf83cdc7a80691bb4 (patch)
tree17faa3160a7cef9bb7c8388b5a7dbd617369e6ac /tests/select_for_update
parentef021412d5e7eb78c89f0b7cf2ec01bcb959a837 (diff)
downloaddjango-bae64dd0f13ba247448197ecf83cdc7a80691bb4.tar.gz
Fixed #27062 -- Eased implementing select_for_update() on MSSQL.
Diffstat (limited to 'tests/select_for_update')
-rw-r--r--tests/select_for_update/tests.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/select_for_update/tests.py b/tests/select_for_update/tests.py
index dcdd742ad4..e6e1155ee2 100644
--- a/tests/select_for_update/tests.py
+++ b/tests/select_for_update/tests.py
@@ -5,9 +5,11 @@ import time
from multiple_database.routers import TestRouter
-from django.db import DatabaseError, connection, router, transaction
+from django.db import (
+ DatabaseError, connection, connections, router, transaction,
+)
from django.test import (
- TransactionTestCase, override_settings, skipIfDBFeature,
+ TransactionTestCase, mock, override_settings, skipIfDBFeature,
skipUnlessDBFeature,
)
from django.test.utils import CaptureQueriesContext
@@ -151,6 +153,14 @@ class SelectForUpdateTests(TransactionTestCase):
Person.objects.select_for_update(skip_locked=True).get()
@skipUnlessDBFeature('has_select_for_update')
+ def test_for_update_after_from(self):
+ features_class = connections['default'].features.__class__
+ attribute_to_patch = "%s.%s.for_update_after_from" % (features_class.__module__, features_class.__name__)
+ with mock.patch(attribute_to_patch, return_value=True):
+ with transaction.atomic():
+ self.assertIn('FOR UPDATE WHERE', str(Person.objects.filter(name='foo').select_for_update().query))
+
+ @skipUnlessDBFeature('has_select_for_update')
def test_for_update_requires_transaction(self):
"""
Test that a TransactionManagementError is raised