Unit test for splitting collection posts

main
bashrc 2026-04-08 22:44:01 +01:00
parent 101ea22e89
commit 1361610297
2 changed files with 60 additions and 2 deletions

View File

@ -3358,7 +3358,7 @@ def _receive_follow_request(session, session_onion, session_i2p,
system_language, mitm_servers)
def _split_post_collection(collection_post_json: {}) -> []:
def split_post_collection(collection_post_json: {}) -> []:
"""Splits a collection post up into separate posts
https://codeberg.org/fediverse/fep/src/branch/main/fep/1a11/fep-1a11.md
"""
@ -3844,7 +3844,7 @@ def run_inbox_queue(server,
# if the post contains a collection of posts then split it up
remove_queue_item = False
posts_list_json = _split_post_collection(queue_json['post'])
posts_list_json = split_post_collection(queue_json['post'])
for curr_post_json in posts_list_json:
if receive_undo(base_dir, curr_post_json,

View File

@ -156,6 +156,7 @@ from media import get_attachment_media_type
from delete import send_delete_via_server
from inbox import valid_inbox
from inbox import valid_inbox_filenames
from inbox import split_post_collection
from categories import guess_hashtag_category
from content import remove_link_trackers_from_content
from content import format_mixed_right_to_left
@ -9698,6 +9699,62 @@ def _test_yggdrasil_addresses() -> None:
assert not is_yggdrasil_url(text)
def _test_post_collection() -> None:
# https://codeberg.org/fediverse/fep/src/branch/main/fep/1a11/fep-1a11.md
print('split post collection')
post_json = {
"actor": "https://lemmings/c/gargleblaster",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "OrderedCollection",
"id": "https://lemmings/activities/12345",
"totalItems": 3,
"orderedItems": [
{
"id": "https://lemmings/activities/like/6252183",
"actor": "https://lemmings/u/SpaceNo",
"object": "https://suckerpunch/comment/2965",
"type": "Like",
"audience": "https://lemmings/c/gargleblaster"
},
{
"id": "https://lemmings/activities/like/3563",
"actor": "https://lemmings/u/Peter",
"object": "https://suckerpunch/comment/2965",
"type": "Like",
"audience": "https://lemmings/c/gargleblaster"
},
{
"id": "https://lemmings/activities/like/7243",
"actor": "https://lemmings/u/Rimu",
"object": "https://suckerpunch/comment/2965",
"type": "Like",
"audience": "https://lemmings/c/gargleblaster"
}
],
},
"cc": [
"https://lemmings/c/gargleblaster/followers"
],
"type": "Announce",
"id": "https://lemmings/activities/announce/7643274",
"@context": []
}
posts_list = split_post_collection(post_json)
assert len(posts_list) == 3
assert posts_list[0]['type'] == "Announce"
assert posts_list[0]['object']['id'] == \
"https://lemmings/activities/like/6252183"
assert posts_list[1]['type'] == "Announce"
assert posts_list[1]['object']['id'] == \
"https://lemmings/activities/like/3563"
assert posts_list[2]['type'] == "Announce"
assert posts_list[2]['object']['id'] == \
"https://lemmings/activities/like/7243"
def run_all_tests():
base_dir = os.getcwd()
data_dir_testing(base_dir)
@ -9716,6 +9773,7 @@ def run_all_tests():
_test_checkbox_names()
_test_thread_functions()
_test_functions()
_test_post_collection()
_test_micron_blog(base_dir)
_test_yggdrasil_addresses()
_test_replace_gemini_links()