mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
[2.1.x] Fixed #29380 -- Added support for QuerySet.select_for_update()'s nowait and skip_locked options on MySQL 8+.
Backport of a7bc1aea03 from master
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from unittest import mock, skipUnless
|
||||
|
||||
from django.db import connection
|
||||
from django.db.backends.mysql.features import DatabaseFeatures
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
@@ -17,3 +18,15 @@ class TestFeatures(TestCase):
|
||||
with mock.patch('django.db.connection.features._mysql_storage_engine', 'MyISAM'):
|
||||
self.assertFalse(connection.features.supports_transactions)
|
||||
del connection.features.supports_transactions
|
||||
|
||||
def test_skip_locked_no_wait(self):
|
||||
with mock.MagicMock() as _connection:
|
||||
_connection.mysql_version = (8, 0, 1)
|
||||
database_features = DatabaseFeatures(_connection)
|
||||
self.assertTrue(database_features.has_select_for_update_skip_locked)
|
||||
self.assertTrue(database_features.has_select_for_update_nowait)
|
||||
with mock.MagicMock() as _connection:
|
||||
_connection.mysql_version = (8, 0, 0)
|
||||
database_features = DatabaseFeatures(_connection)
|
||||
self.assertFalse(database_features.has_select_for_update_skip_locked)
|
||||
self.assertFalse(database_features.has_select_for_update_nowait)
|
||||
|
||||
Reference in New Issue
Block a user