mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Refs #7098 -- Removed support for passing raw column aliases to order_by().
Per deprecation timeline.
This commit is contained in:
@@ -12,8 +12,7 @@ from django.db.models.expressions import RawSQL
|
||||
from django.db.models.sql.constants import LOUTER
|
||||
from django.db.models.sql.where import NothingNode, WhereNode
|
||||
from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
|
||||
from django.test.utils import CaptureQueriesContext, ignore_warnings
|
||||
from django.utils.deprecation import RemovedInDjango40Warning
|
||||
from django.test.utils import CaptureQueriesContext
|
||||
|
||||
from .models import (
|
||||
FK1, Annotation, Article, Author, BaseA, Book, CategoryItem,
|
||||
@@ -594,13 +593,6 @@ class Queries1Tests(TestCase):
|
||||
[datetime.datetime(2007, 12, 19, 0, 0)],
|
||||
)
|
||||
|
||||
@ignore_warnings(category=RemovedInDjango40Warning)
|
||||
def test_ticket7098(self):
|
||||
self.assertSequenceEqual(
|
||||
Item.objects.values('note__note').order_by('queries_note.note', 'id'),
|
||||
[{'note__note': 'n2'}, {'note__note': 'n3'}, {'note__note': 'n3'}, {'note__note': 'n3'}]
|
||||
)
|
||||
|
||||
def test_order_by_rawsql(self):
|
||||
self.assertSequenceEqual(
|
||||
Item.objects.values('note__note').order_by(
|
||||
@@ -615,15 +607,6 @@ class Queries1Tests(TestCase):
|
||||
],
|
||||
)
|
||||
|
||||
def test_order_by_raw_column_alias_warning(self):
|
||||
msg = (
|
||||
"Passing column raw column aliases to order_by() is deprecated. "
|
||||
"Wrap 'queries_author.name' in a RawSQL expression before "
|
||||
"passing it to order_by()."
|
||||
)
|
||||
with self.assertRaisesMessage(RemovedInDjango40Warning, msg):
|
||||
Item.objects.values('creator__name').order_by('queries_author.name')
|
||||
|
||||
def test_ticket7096(self):
|
||||
# Make sure exclude() with multiple conditions continues to work.
|
||||
self.assertSequenceEqual(
|
||||
@@ -3083,6 +3066,15 @@ class QuerySetExceptionTests(SimpleTestCase):
|
||||
with self.assertRaisesMessage(FieldError, msg):
|
||||
Article.objects.order_by('*')
|
||||
|
||||
def test_invalid_order_by_raw_column_alias(self):
|
||||
msg = (
|
||||
"Cannot resolve keyword 'queries_author.name' into field. Choices "
|
||||
"are: cover, created, creator, creator_id, id, modified, name, "
|
||||
"note, note_id, tags"
|
||||
)
|
||||
with self.assertRaisesMessage(FieldError, msg):
|
||||
Item.objects.values('creator__name').order_by('queries_author.name')
|
||||
|
||||
def test_invalid_queryset_model(self):
|
||||
msg = 'Cannot use QuerySet for "Article": Use a QuerySet for "ExtraInfo".'
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
|
||||
Reference in New Issue
Block a user