Skip to content

Commit 39ce63f

Browse files
committed
Fix: posts tests messages with pagination
1 parent ee86193 commit 39ce63f

File tree

3 files changed

+39
-20
lines changed

3 files changed

+39
-20
lines changed

src/aleph/db/accessors/files.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,17 @@ def get_address_files_for_api(
170170
if pagination:
171171
select_stmt = select_stmt.limit(pagination).offset((page - 1) * pagination)
172172

173-
order_by_columns = (
174-
MessageFilePinDb.created.desc(),
175-
(
176-
MessageFilePinDb.item_hash.asc()
177-
if sort_order == SortOrder.DESCENDING
178-
else MessageFilePinDb.created.asc()
179-
),
180-
MessageFilePinDb.item_hash.asc(),
181-
)
173+
if sort_order == SortOrder.DESCENDING:
174+
order_by_columns = (
175+
MessageFilePinDb.created.desc(),
176+
MessageFilePinDb.item_hash.asc(),
177+
)
178+
else: # ASCENDING
179+
order_by_columns = (
180+
MessageFilePinDb.item_hash.asc(),
181+
MessageFilePinDb.item_hash.asc(),
182+
)
183+
182184
select_stmt = select_stmt.order_by(*order_by_columns)
183185

184186
return session.execute(select_stmt).all()

src/aleph/db/accessors/messages.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,15 +165,16 @@ def make_matching_messages_query(
165165
)
166166
)
167167
else:
168-
order_by_columns = (
169-
MessageDb.time.desc(),
170-
(
171-
MessageDb.item_hash.asc()
172-
if sort_order == SortOrder.DESCENDING
173-
else MessageDb.time.asc()
174-
),
175-
MessageDb.item_hash.asc(),
176-
)
168+
if sort_order == SortOrder.DESCENDING:
169+
order_by_columns = (
170+
MessageDb.time.desc(),
171+
MessageDb.item_hash.asc(),
172+
)
173+
else: # ASCENDING
174+
order_by_columns = (
175+
MessageDb.time.asc(),
176+
MessageDb.item_hash.asc(),
177+
)
177178

178179
select_stmt = select_stmt.order_by(*order_by_columns).offset(
179180
(page - 1) * pagination

tests/api/test_list_messages.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,22 @@ async def fetch_messages_with_pagination_expect_success(
395395

396396
@pytest.mark.asyncio()
397397
async def test_pagination(fixture_messages, ccn_api_client):
398-
sorted_messages_by_time = sorted(fixture_messages, key=lambda msg: msg["time"])
398+
forgotten_messages = list(
399+
filter(lambda msg: msg["type"] == "FORGET", fixture_messages)
400+
)
401+
forgotten_hashes = list(
402+
itertools.chain.from_iterable(
403+
[msg["content"]["hashes"] for msg in forgotten_messages]
404+
)
405+
)
406+
407+
messages_without_forgotten = list(
408+
filter(lambda msg: msg["item_hash"] not in forgotten_hashes, fixture_messages)
409+
)
410+
411+
sorted_messages_by_time = sorted(
412+
messages_without_forgotten, key=lambda msg: msg["time"]
413+
)
399414

400415
# More messages than available
401416
messages = await fetch_messages_with_pagination_expect_success(
@@ -427,10 +442,11 @@ async def test_pagination(fixture_messages, ccn_api_client):
427442
)
428443
assert_messages_equal(messages, sorted_messages_by_time[-1:])
429444

430-
# Some messages, reverse sort order
445+
# Some messages, ascending sort order
431446
messages = await fetch_messages_with_pagination_expect_success(
432447
ccn_api_client, page=1, pagination=3, sort_order=1
433448
)
449+
434450
assert_messages_equal(messages, sorted_messages_by_time[:3])
435451

436452
# Several pages too far

0 commit comments

Comments
 (0)