check orders

This commit is contained in:
collerek
2021-03-07 14:10:35 +01:00
parent 4a66054987
commit e8329c0dcd
4 changed files with 39 additions and 28 deletions

View File

@ -51,14 +51,14 @@ jobs:
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Run postgres
env:
DATABASE_URL: "postgresql://username:password@localhost:5432/testsuite"
run: bash scripts/test.sh
- name: Run mysql
env:
DATABASE_URL: "mysql://username:password@127.0.0.1:3306/testsuite"
run: bash scripts/test.sh
- name: Run postgres
env:
DATABASE_URL: "postgresql://username:password@localhost:5432/testsuite"
run: bash scripts/test.sh
- name: Run sqlite
env:
DATABASE_URL: "sqlite:///testsuite"

View File

@ -173,7 +173,7 @@ class Query:
limit_qry
)
limit_qry = limit_qry.group_by(qry_text)
limit_qry = OrderQuery(sorted_orders=self.sorted_orders).apply(limit_qry)
# limit_qry = OrderQuery(sorted_orders=self.sorted_orders).apply(limit_qry)
limit_qry = LimitQuery(limit_count=self.limit_count).apply(limit_qry)
limit_qry = OffsetQuery(query_offset=self.query_offset).apply(limit_qry)
limit_action = FilterAction(

View File

@ -281,7 +281,7 @@ class QuerySet:
limit_raw_sql=self.limit_sql_raw,
)
exp = qry.build_select_expression()
# print("\n", exp.compile(compile_kwargs={"literal_binds": True}))
print("\n", exp.compile(compile_kwargs={"literal_binds": True}))
return exp
def filter( # noqa: A003

View File

@ -132,6 +132,11 @@ async def test_sort_order_on_main_model():
assert songs[1].name == "Song 2"
assert songs[2].name == "Song 3"
songs = await Song.objects.order_by("name").limit(2).all()
assert len(songs) == 2
assert songs[0].name == "Song 1"
assert songs[1].name == "Song 2"
await Song.objects.create(name="Song 4", sort_order=1)
songs = await Song.objects.order_by(["sort_order", "name"]).all()
@ -216,6 +221,12 @@ async def test_sort_order_on_related_model():
assert owners[1].toys[1].name == "Toy 5"
assert owners[1].name == "Hermes"
toys = await Toy.objects.select_related('owner').order_by('owner__name').limit(
2).all()
assert len(toys) == 2
assert toys[0].name == 'Toy 2'
assert toys[1].name == 'Toy 3'
@pytest.mark.asyncio
async def test_sort_order_on_many_to_many():