add nested for all aliases as postgres serves nulls first when order by desc

This commit is contained in:
collerek
2020-11-11 10:35:16 +01:00
parent 5663ad6cc2
commit a797373983

View File

@ -303,14 +303,16 @@ async def test_sort_order_with_aliases():
async with database:
al1 = await AliasTest.objects.create(name="Test4")
al2 = await AliasTest.objects.create(name="Test2")
await AliasTest.objects.create(name="Test1")
await AliasTest.objects.create(name="Test3")
al3 = await AliasTest.objects.create(name="Test1")
al4 = await AliasTest.objects.create(name="Test3")
aliases = await AliasTest.objects.order_by("-name").all()
assert [alias.name[-1] for alias in aliases] == ["4", "3", "2", "1"]
nest1 = await AliasNested.objects.create(name="Try1")
nest2 = await AliasNested.objects.create(name="Try2")
nest3 = await AliasNested.objects.create(name="Try3")
nest4 = await AliasNested.objects.create(name="Try4")
al1.nested = nest1
await al1.update()
@ -318,12 +320,18 @@ async def test_sort_order_with_aliases():
al2.nested = nest2
await al2.update()
al3.nested = nest3
await al3.update()
al4.nested = nest4
await al4.update()
aliases = (
await AliasTest.objects.select_related("nested")
.order_by("-nested__name")
.all()
)
assert aliases[0].nested.name == "Try2"
assert aliases[1].nested.name == "Try1"
assert aliases[2].nested is None
assert aliases[3].nested is None
assert aliases[0].nested.name == "Try4"
assert aliases[1].nested.name == "Try3"
assert aliases[2].nested.name == "Try2"
assert aliases[3].nested.name == "Try1"