Fix old post tests
This commit is contained in:
parent
18ab453baa
commit
b721833b4f
|
@ -1,8 +1,10 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
from activities.models import Post, TimelineEvent
|
from activities.models import Post, TimelineEvent
|
||||||
from activities.services import PostService
|
from activities.services import PostService
|
||||||
from users.models import Block, Identity, InboxMessage
|
from core.ld import format_ld_date
|
||||||
|
from users.models import Block, Follow, Identity, InboxMessage
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
@ -31,7 +33,7 @@ def test_mentioned(
|
||||||
"object": {
|
"object": {
|
||||||
"id": "https://remote.test/test-post",
|
"id": "https://remote.test/test-post",
|
||||||
"type": "Note",
|
"type": "Note",
|
||||||
"published": "2022-11-13T23:20:16Z",
|
"published": format_ld_date(timezone.now()),
|
||||||
"attributedTo": remote_identity.actor_uri,
|
"attributedTo": remote_identity.actor_uri,
|
||||||
"content": f"Hello @{identity.handle}!",
|
"content": f"Hello @{identity.handle}!",
|
||||||
"tag": {
|
"tag": {
|
||||||
|
@ -137,3 +139,56 @@ def test_interaction_local_post(
|
||||||
).first()
|
).first()
|
||||||
assert event
|
assert event
|
||||||
assert event.subject_identity == interactor
|
assert event.subject_identity == interactor
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
@pytest.mark.parametrize("old", [True, False])
|
||||||
|
def test_old_new_post(
|
||||||
|
identity: Identity,
|
||||||
|
remote_identity: Identity,
|
||||||
|
stator,
|
||||||
|
old: bool,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Ensures that old remote posts don't appear on the timeline, but new ones do.
|
||||||
|
"""
|
||||||
|
# Follow the remote user
|
||||||
|
Follow.create_local(identity, remote_identity)
|
||||||
|
# Create an inbound new post message
|
||||||
|
message = {
|
||||||
|
"id": "test",
|
||||||
|
"type": "Create",
|
||||||
|
"actor": remote_identity.actor_uri,
|
||||||
|
"object": {
|
||||||
|
"id": "https://remote.test/test-post",
|
||||||
|
"type": "Note",
|
||||||
|
"published": "2022-01-01T00:00:00Z"
|
||||||
|
if old
|
||||||
|
else format_ld_date(timezone.now()),
|
||||||
|
"attributedTo": remote_identity.actor_uri,
|
||||||
|
"content": f"Hello @{identity.handle}!",
|
||||||
|
"tag": {
|
||||||
|
"type": "Mention",
|
||||||
|
"href": identity.actor_uri,
|
||||||
|
"name": f"@{identity.handle}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
InboxMessage.objects.create(message=message)
|
||||||
|
|
||||||
|
# Run stator twice - to make fanouts and then process them
|
||||||
|
stator.run_single_cycle_sync()
|
||||||
|
stator.run_single_cycle_sync()
|
||||||
|
|
||||||
|
if old:
|
||||||
|
# Verify it did not appear on the timeline
|
||||||
|
assert not TimelineEvent.objects.filter(
|
||||||
|
type=TimelineEvent.Types.post, identity=identity
|
||||||
|
).exists()
|
||||||
|
else:
|
||||||
|
# Verify it appeared on the timeline
|
||||||
|
event = TimelineEvent.objects.filter(
|
||||||
|
type=TimelineEvent.Types.post, identity=identity
|
||||||
|
).first()
|
||||||
|
assert event
|
||||||
|
assert "Hello " in event.subject_post.content
|
||||||
|
|
Loading…
Reference in New Issue