mirror of https://github.com/django/django.git
Fixed test failure caused by different NULL ordering between backends
This commit is contained in:
parent
cea7204504
commit
ced3e6b17d
|
@ -599,6 +599,9 @@ class BaseDatabaseFeatures(object):
|
||||||
# to remove any ordering?
|
# to remove any ordering?
|
||||||
requires_explicit_null_ordering_when_grouping = False
|
requires_explicit_null_ordering_when_grouping = False
|
||||||
|
|
||||||
|
# Does the backend order NULL values as largest or smallest?
|
||||||
|
nulls_order_largest = False
|
||||||
|
|
||||||
# Is there a 1000 item limit on query parameters?
|
# Is there a 1000 item limit on query parameters?
|
||||||
supports_1000_query_parameters = True
|
supports_1000_query_parameters = True
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
|
||||||
can_distinct_on_fields = True
|
can_distinct_on_fields = True
|
||||||
can_rollback_ddl = True
|
can_rollback_ddl = True
|
||||||
supports_combined_alters = True
|
supports_combined_alters = True
|
||||||
|
nulls_order_largest = True
|
||||||
|
|
||||||
|
|
||||||
class DatabaseWrapper(BaseDatabaseWrapper):
|
class DatabaseWrapper(BaseDatabaseWrapper):
|
||||||
|
|
|
@ -262,9 +262,13 @@ class ReservedName(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
# A simpler shared-foreign-key setup that can expose some problems.
|
# A simpler shared-foreign-key setup that can expose some problems.
|
||||||
|
@python_2_unicode_compatible
|
||||||
class SharedConnection(models.Model):
|
class SharedConnection(models.Model):
|
||||||
data = models.CharField(max_length=10)
|
data = models.CharField(max_length=10)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.data
|
||||||
|
|
||||||
class PointerA(models.Model):
|
class PointerA(models.Model):
|
||||||
connection = models.ForeignKey(SharedConnection)
|
connection = models.ForeignKey(SharedConnection)
|
||||||
|
|
||||||
|
|
|
@ -2984,7 +2984,11 @@ class Ticket14056Tests(TestCase):
|
||||||
s2 = SharedConnection.objects.create(data='s2')
|
s2 = SharedConnection.objects.create(data='s2')
|
||||||
s3 = SharedConnection.objects.create(data='s3')
|
s3 = SharedConnection.objects.create(data='s3')
|
||||||
PointerA.objects.create(connection=s2)
|
PointerA.objects.create(connection=s2)
|
||||||
self.assertQuerysetEqual(
|
expected_ordering = (
|
||||||
SharedConnection.objects.order_by('pointera__connection', 'pk'),
|
[s1, s3, s2] if connection.features.nulls_order_largest
|
||||||
[s1, s3, s2], lambda x: x
|
else [s2, s1, s3]
|
||||||
|
)
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
SharedConnection.objects.order_by('-pointera__connection', 'pk'),
|
||||||
|
expected_ordering, lambda x: x
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue