mirror of
https://github.com/django/django.git
synced 2025-08-03 02:23:12 +00:00
Refs #30593 -- Fixed introspection of check constraints columns on MariaDB.
This commit is contained in:
parent
b2aad9ad4d
commit
e3fc9af4ab
2 changed files with 20 additions and 8 deletions
|
@ -7,16 +7,23 @@ from django.test import TestCase
|
|||
@skipUnless(connection.vendor == 'mysql', 'MySQL tests')
|
||||
class ParsingTests(TestCase):
|
||||
def test_parse_constraint_columns(self):
|
||||
_parse_constraint_columns = connection.introspection._parse_constraint_columns
|
||||
tests = (
|
||||
('`height` >= 0', ['height']),
|
||||
('`cost` BETWEEN 1 AND 10', ['cost']),
|
||||
('`ref1` > `ref2`', ['ref1', 'ref2']),
|
||||
('`height` >= 0', ['height'], ['height']),
|
||||
('`cost` BETWEEN 1 AND 10', ['cost'], ['cost']),
|
||||
('`ref1` > `ref2`', ['id', 'ref1', 'ref2'], ['ref1', 'ref2']),
|
||||
(
|
||||
'`start` IS NULL OR `end` IS NULL OR `start` < `end`',
|
||||
['id', 'start', 'end'],
|
||||
['start', 'end'],
|
||||
),
|
||||
('JSON_VALID(`json_field`)', ['json_field'], ['json_field']),
|
||||
('CHAR_LENGTH(`name`) > 2', ['name'], ['name']),
|
||||
("lower(`ref1`) != 'test'", ['id', 'owe', 'ref1'], ['ref1']),
|
||||
("lower(`ref1`) != 'test'", ['id', 'lower', 'ref1'], ['ref1']),
|
||||
("`name` LIKE 'test%'", ['name'], ['name']),
|
||||
)
|
||||
for check_clause, expected_columns in tests:
|
||||
for check_clause, table_columns, expected_columns in tests:
|
||||
with self.subTest(check_clause):
|
||||
check_columns = connection.introspection._parse_constraint_columns(check_clause)
|
||||
check_columns = _parse_constraint_columns(check_clause, table_columns)
|
||||
self.assertEqual(list(check_columns), expected_columns)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue