Mercurial > libervia-backend
annotate tests/unit/test_ap-gateway.py @ 4001:32d714a8ea51
plugin XEP-0045: dot not wait for MAM retrieval to be completed:
in `_join_MAM`, `room.fully_joined` is called before retrieving the MAM archive, as the
process can be very long, and is not necessary to have the room working (message can be
received after being in the room, and added out of order). This avoid blocking the `join`
workflow for an extended time.
Some renaming and coroutine integrations.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 10 Mar 2023 17:22:41 +0100 |
parents | 69d970f974ff |
children | 524856bd7b19 |
rev | line source |
---|---|
3733 | 1 #!/usr/bin/env python3 |
2 | |
3 # Libervia: an XMPP client | |
4 # Copyright (C) 2009-2022 Jérôme Poisson (goffi@goffi.org) | |
5 | |
6 # This program is free software: you can redistribute it and/or modify | |
7 # it under the terms of the GNU Affero General Public License as published by | |
8 # the Free Software Foundation, either version 3 of the License, or | |
9 # (at your option) any later version. | |
10 | |
11 # This program is distributed in the hope that it will be useful, | |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 # GNU Affero General Public License for more details. | |
15 | |
16 # You should have received a copy of the GNU Affero General Public License | |
17 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | |
19 from copy import deepcopy | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
20 from functools import partial |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
21 import io |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
22 import json |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
23 from typing import Any, Dict, Optional, Union |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
24 from unittest.mock import AsyncMock, DEFAULT, MagicMock, patch |
3733 | 25 from urllib import parse |
26 | |
27 import pytest | |
28 from pytest_twisted import ensureDeferred as ed | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
29 from treq.response import _Response as TReqResponse |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
30 from twisted.internet import defer |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
31 from twisted.web.server import Request |
3733 | 32 from twisted.words.protocols.jabber import jid |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
33 from twisted.words.protocols.jabber.error import StanzaError |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
34 from twisted.words.xish import domish |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
35 from wokkel import pubsub, rsm |
3733 | 36 |
37 from sat.core import exceptions | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
38 from sat.core.constants import Const as C |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
39 from sat.memory.sqla_mapping import SubscriptionState |
3733 | 40 from sat.plugins import plugin_comp_ap_gateway |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
41 from sat.plugins.plugin_comp_ap_gateway import constants as ap_const |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
42 from sat.plugins.plugin_comp_ap_gateway import TYPE_ACTOR |
3733 | 43 from sat.plugins.plugin_comp_ap_gateway.http_server import HTTPServer |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
44 from sat.plugins.plugin_xep_0277 import NS_ATOM |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
45 from sat.plugins.plugin_xep_0422 import NS_FASTEN |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
46 from sat.plugins.plugin_xep_0424 import NS_MESSAGE_RETRACT |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
47 from sat.plugins.plugin_xep_0465 import NS_PPS |
3733 | 48 from sat.tools import xml_tools |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
49 from sat.tools.common import uri as xmpp_uri |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
50 from sat.tools.utils import xmpp_date |
3733 | 51 |
52 | |
53 TEST_BASE_URL = "https://example.org" | |
54 TEST_USER = "test_user" | |
55 TEST_AP_ACCOUNT = f"{TEST_USER}@example.org" | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
56 TEST_AP_ACTOR_ID = f"{TEST_BASE_URL}/users/{TEST_USER}" |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
57 PUBLIC_URL = "test.example" |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
58 TEST_JID = jid.JID(f"some_user@{PUBLIC_URL}") |
3733 | 59 |
60 AP_REQUESTS = { | |
61 f"{TEST_BASE_URL}/.well-known/webfinger?" | |
62 f"resource=acct:{parse.quote(TEST_AP_ACCOUNT)}": { | |
63 "aliases": [ | |
64 f"{TEST_BASE_URL}/@{TEST_USER}", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
65 f"{TEST_BASE_URL}/users/{TEST_USER}", |
3733 | 66 ], |
67 "links": [ | |
68 { | |
69 "href": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
70 "rel": "self", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
71 "type": "application/activity+json", |
3733 | 72 }, |
73 ], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
74 "subject": f"acct:{TEST_AP_ACCOUNT}", |
3733 | 75 }, |
76 f"{TEST_BASE_URL}/users/{TEST_USER}": { | |
77 "@context": [ | |
78 "https://www.w3.org/ns/activitystreams", | |
79 ], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
80 "endpoints": {"sharedInbox": f"{TEST_BASE_URL}/inbox"}, |
3733 | 81 "followers": f"{TEST_BASE_URL}/users/{TEST_USER}/followers", |
82 "following": f"{TEST_BASE_URL}/users/{TEST_USER}/following", | |
83 "id": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
84 "inbox": f"{TEST_BASE_URL}/users/{TEST_USER}/inbox", | |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
85 "name": "test_user nickname", |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
86 "summary": "<p>test account</p>", |
3733 | 87 "outbox": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox", |
88 "preferredUsername": f"{TEST_USER}", | |
89 "type": "Person", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
90 "url": f"{TEST_BASE_URL}/@{TEST_USER}", |
3733 | 91 }, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
92 f"{TEST_BASE_URL}/.well-known/webfinger?" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
93 f"resource=acct:{parse.quote('ext_user@example.org')}": { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
94 "aliases": [f"{TEST_BASE_URL}/@ext_user", f"{TEST_BASE_URL}/users/ext_user"], |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
95 "links": [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
96 { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
97 "href": f"{TEST_BASE_URL}/users/ext_user", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
98 "rel": "self", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
99 "type": "application/activity+json", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
100 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
101 ], |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
102 "subject": f"acct:ext_user@example.org", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
103 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
104 f"{TEST_BASE_URL}/users/ext_user": { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
105 "@context": [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
106 "https://www.w3.org/ns/activitystreams", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
107 ], |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
108 "endpoints": {"sharedInbox": f"{TEST_BASE_URL}/inbox"}, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
109 "followers": f"{TEST_BASE_URL}/users/ext_user/followers", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
110 "following": f"{TEST_BASE_URL}/users/ext_user/following", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
111 "id": f"{TEST_BASE_URL}/users/ext_user", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
112 "inbox": f"{TEST_BASE_URL}/users/ext_user/inbox", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
113 "name": "", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
114 "outbox": f"{TEST_BASE_URL}/users/ext_user/outbox", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
115 "preferredUsername": f"ext_user", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
116 "type": "Person", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
117 "url": f"{TEST_BASE_URL}/@ext_user", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
118 }, |
3733 | 119 f"{TEST_BASE_URL}/users/{TEST_USER}/outbox": { |
120 "@context": "https://www.w3.org/ns/activitystreams", | |
121 "first": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true", | |
122 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox", | |
123 "last": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true", | |
124 "totalItems": 4, | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
125 "type": "OrderedCollection", |
3733 | 126 }, |
127 f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true": { | |
128 "@context": [ | |
129 "https://www.w3.org/ns/activitystreams", | |
130 ], | |
131 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true", | |
132 "orderedItems": [ | |
133 { | |
134 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
135 "cc": [ | |
136 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
137 ], | |
138 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/1/activity", | |
139 "object": { | |
140 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
141 "cc": [ | |
142 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
143 ], | |
144 "content": "<p>test message 1</p>", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
145 "contentMap": {"en": "<p>test message 1</p>"}, |
3733 | 146 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/1", |
147 "inReplyTo": None, | |
148 "published": "2021-12-16T17:28:03Z", | |
149 "sensitive": False, | |
150 "summary": None, | |
151 "tag": [], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
152 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3733 | 153 "type": "Note", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
154 "url": f"{TEST_BASE_URL}/@{TEST_USER}/1", |
3733 | 155 }, |
156 "published": "2021-12-16T17:28:03Z", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
157 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
158 "type": "Create", |
3733 | 159 }, |
160 { | |
161 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
162 "cc": [ | |
163 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
164 ], | |
165 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/2/activity", | |
166 "object": { | |
167 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
168 "cc": [ | |
169 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
170 ], | |
171 "content": "<p>test message 2</p>", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
172 "contentMap": {"en": "<p>test message 2</p>"}, |
3733 | 173 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/2", |
174 "inReplyTo": None, | |
175 "published": "2021-12-16T17:27:03Z", | |
176 "sensitive": False, | |
177 "summary": None, | |
178 "tag": [], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
179 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3733 | 180 "type": "Note", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
181 "url": f"{TEST_BASE_URL}/@{TEST_USER}/2", |
3733 | 182 }, |
183 "published": "2021-12-16T17:27:03Z", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
184 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
185 "type": "Create", |
3733 | 186 }, |
187 { | |
188 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
189 "cc": [ | |
190 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
191 ], | |
192 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/3/activity", | |
193 "object": { | |
194 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
195 "cc": [ | |
196 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
197 ], | |
198 "content": "<p>test message 3</p>", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
199 "contentMap": {"en": "<p>test message 3</p>"}, |
3733 | 200 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/3", |
201 "inReplyTo": None, | |
202 "published": "2021-12-16T17:26:03Z", | |
203 "sensitive": False, | |
204 "summary": None, | |
205 "tag": [], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
206 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3733 | 207 "type": "Note", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
208 "url": f"{TEST_BASE_URL}/@{TEST_USER}/3", |
3733 | 209 }, |
210 "published": "2021-12-16T17:26:03Z", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
211 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
212 "type": "Create", |
3733 | 213 }, |
214 { | |
215 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
216 "cc": [ | |
217 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
218 ], | |
219 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/4/activity", | |
220 "object": { | |
221 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}", | |
222 "cc": [ | |
223 f"{TEST_BASE_URL}/users/{TEST_USER}/followers", | |
224 ], | |
225 "content": "<p>test message 4</p>", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
226 "contentMap": {"en": "<p>test message 4</p>"}, |
3733 | 227 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/4", |
228 "inReplyTo": None, | |
229 "published": "2021-12-16T17:25:03Z", | |
230 "sensitive": False, | |
231 "summary": None, | |
232 "tag": [], | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
233 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3733 | 234 "type": "Note", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
235 "url": f"{TEST_BASE_URL}/@{TEST_USER}/4", |
3733 | 236 }, |
237 "published": "2021-12-16T17:25:03Z", | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
238 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
239 "type": "Create", |
3733 | 240 }, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
241 ], |
3733 | 242 "partOf": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox", |
243 "prev": None, | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
244 "type": "OrderedCollectionPage", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
245 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
246 f"{TEST_BASE_URL}/users/{TEST_USER}/following": { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
247 "@context": "https://www.w3.org/ns/activitystreams", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
248 "first": f"{TEST_BASE_URL}/users/{TEST_USER}/following?page=1", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
249 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/following", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
250 "totalItems": 2, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
251 "type": "OrderedCollection", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
252 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
253 f"{TEST_BASE_URL}/users/{TEST_USER}/following?page=1": { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
254 "@context": "https://www.w3.org/ns/activitystreams", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
255 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/following?page=1", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
256 "orderedItems": [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
257 f"{TEST_BASE_URL}/users/ext_user", |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
258 f"https://{PUBLIC_URL}/_ap/{TYPE_ACTOR}/local_user@{PUBLIC_URL}", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
259 ], |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
260 "partOf": "{TEST_BASE_URL}/users/{TEST_USER}/following", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
261 "totalItems": 2, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
262 "type": "OrderedCollectionPage", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
263 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
264 f"{TEST_BASE_URL}/users/{TEST_USER}/followers": { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
265 "@context": "https://www.w3.org/ns/activitystreams", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
266 "first": f"{TEST_BASE_URL}/users/{TEST_USER}/followers?page=1", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
267 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/followers", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
268 "totalItems": 2, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
269 "type": "OrderedCollection", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
270 }, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
271 f"{TEST_BASE_URL}/users/{TEST_USER}/followers?page=1": { |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
272 "@context": "https://www.w3.org/ns/activitystreams", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
273 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/followers?page=1", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
274 "orderedItems": [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
275 f"{TEST_BASE_URL}/users/ext_user", |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
276 f"https://{PUBLIC_URL}/_ap/{TYPE_ACTOR}/local_user@{PUBLIC_URL}", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
277 ], |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
278 "partOf": "{TEST_BASE_URL}/users/{TEST_USER}/followers", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
279 "totalItems": 2, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
280 "type": "OrderedCollectionPage", |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
281 }, |
3733 | 282 } |
283 | |
284 XMPP_ITEM_TPL = """ | |
285 <item id='{id}' publisher='{publisher_jid}'> | |
286 <entry xmlns='http://www.w3.org/2005/Atom' xml:lang='en'> | |
287 <title type='xhtml'> | |
288 <div xmlns='http://www.w3.org/1999/xhtml'> | |
289 <p> | |
290 XMPP item {id} | |
291 </p> | |
292 </div> | |
293 </title> | |
294 <title type='text'> | |
295 XMPP item {id} | |
296 </title> | |
297 <author> | |
298 <name> | |
299 test_user | |
300 </name> | |
301 <uri> | |
302 xmpp:{publisher_jid} | |
303 </uri> | |
304 </author> | |
305 <updated> | |
306 {updated} | |
307 </updated> | |
308 <published> | |
309 {published} | |
310 </published> | |
311 <id> | |
312 xmpp:{publisher_jid}?;node=urn%3Axmpp%3Amicroblog%3A0;item={id} | |
313 </id> | |
314 </entry> | |
315 </item> | |
316 """ | |
317 | |
318 ITEM_BASE_TS = 1643385499 | |
319 XMPP_ITEMS = [ | |
320 xml_tools.parse( | |
321 "".join( | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
322 l.strip() |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
323 for l in XMPP_ITEM_TPL.format( |
3733 | 324 id=i, |
325 publisher_jid="some_user@test.example", | |
326 updated=xmpp_date(ITEM_BASE_TS + i * 60), | |
327 published=xmpp_date(ITEM_BASE_TS + i * 60), | |
328 ).split("\n") | |
329 ), | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
330 namespace=pubsub.NS_PUBSUB, |
3733 | 331 ) |
332 for i in range(1, 5) | |
333 ] | |
334 | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
335 TEST_USER_DATA = AP_REQUESTS[f"{TEST_BASE_URL}/users/{TEST_USER}"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
336 OUTBOX_FIRST_PAGE = f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
337 TEST_AP_ITEMS = AP_REQUESTS[OUTBOX_FIRST_PAGE]["orderedItems"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
338 # request on an item ID must return the ID |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
339 for item in TEST_AP_ITEMS: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
340 AP_REQUESTS[item["id"]] = item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
341 |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
342 |
3733 | 343 async def mock_ap_get(url): |
344 return deepcopy(AP_REQUESTS[url]) | |
345 | |
346 | |
347 async def mock_treq_json(data): | |
348 return dict(data) | |
349 | |
350 | |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
351 async def mock_getItems(client, service, node, *args, **kwargs): |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
352 """Mock getItems |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
353 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
354 special kwargs can be used: |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
355 ret_items (List[Domish.Element]): items to be returned, by default XMPP_ITEMS are |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
356 returned |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
357 tested_node (str): node for which items must be returned. If specified and a |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
358 different node is requested, "item-not-found" StanzaError will be raised |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
359 """ |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
360 tested_node = kwargs.pop("tested_node", None) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
361 if tested_node is not None and node != tested_node: |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
362 raise StanzaError("item-not-found") |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
363 ret_items = kwargs.pop("ret_items", XMPP_ITEMS) |
3733 | 364 rsm_resp = rsm.RSMResponse( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
365 first=ret_items[0]["id"], last=ret_items[-1]["id"], index=0, count=len(ret_items) |
3733 | 366 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
367 return ret_items, {"rsm": rsm_resp.toDict(), "complete": True} |
3733 | 368 |
369 | |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
370 async def mock_getPubsubNode(client, service, node, with_subscriptions=False, **kwargs): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
371 """Mock storage's getPubsubNode |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
372 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
373 return an MagicMock with subscription attribute set to empty list |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
374 """ |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
375 fake_cached_node = MagicMock() |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
376 fake_cached_node.subscriptions = [] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
377 return fake_cached_node |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
378 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
379 |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
380 def mockClient(jid): |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
381 client = MagicMock() |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
382 client.jid = jid |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
383 client.host = "test.example" |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
384 client._ap_storage.get = AsyncMock() |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
385 client._ap_storage.aset = AsyncMock() |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
386 return client |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
387 |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
388 |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
389 def getVirtualClient(jid): |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
390 return mockClient(jid) |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
391 |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
392 |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
393 class FakeTReqPostResponse: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
394 code = 202 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
395 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
396 |
3733 | 397 @pytest.fixture(scope="session") |
398 def ap_gateway(host): | |
399 gateway = plugin_comp_ap_gateway.APGateway(host) | |
400 gateway.initialised = True | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
401 gateway.isPubsub = AsyncMock() |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
402 gateway.isPubsub.return_value = False |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
403 client = mockClient(jid.JID("ap.test.example")) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
404 client.getVirtualClient = getVirtualClient |
3733 | 405 gateway.client = client |
406 gateway.local_only = True | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
407 gateway.public_url = PUBLIC_URL |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
408 gateway.ap_path = "_ap" |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
409 gateway.auto_mentions = True |
3733 | 410 gateway.base_ap_url = parse.urljoin( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
411 f"https://{gateway.public_url}", f"{gateway.ap_path}/" |
3733 | 412 ) |
413 gateway.server = HTTPServer(gateway) | |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
414 gateway.public_key_pem = None |
3733 | 415 return gateway |
416 | |
417 | |
418 class TestActivityPubGateway: | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
419 def getTitleXHTML(self, item_elt: domish.Element) -> domish.Element: |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
420 return next( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
421 t |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
422 for t in item_elt.entry.elements(NS_ATOM, "title") |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
423 if t.getAttribute("type") == "xhtml" |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
424 ) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
425 |
3733 | 426 @ed |
427 async def test_jid_and_node_convert_to_ap_handle(self, ap_gateway): | |
428 """JID and pubsub node are converted correctly to an AP actor handle""" | |
429 get_account = ap_gateway.getAPAccountFromJidAndNode | |
430 | |
431 # local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
432 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
433 await get_account(jid_=jid.JID("simple@test.example"), node=None) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
434 == "simple@test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
435 ) |
3733 | 436 |
437 # non local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
438 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
439 await get_account(jid_=jid.JID("simple@example.org"), node=None) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
440 == "___simple.40example.2eorg@ap.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
441 ) |
3733 | 442 |
443 # local jid with non microblog node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
444 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
445 await get_account(jid_=jid.JID("simple@test.example"), node="some_other_node") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
446 == "some_other_node---simple@test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
447 ) |
3733 | 448 |
449 # local pubsub node | |
450 with patch.object(ap_gateway, "isPubsub") as isPubsub: | |
451 isPubsub.return_value = True | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
452 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
453 await get_account(jid_=jid.JID("pubsub.test.example"), node="some_node") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
454 == "some_node@pubsub.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
455 ) |
3733 | 456 |
457 # non local pubsub node | |
458 with patch.object(ap_gateway, "isPubsub") as isPubsub: | |
459 isPubsub.return_value = True | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
460 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
461 await get_account(jid_=jid.JID("pubsub.example.org"), node="some_node") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
462 == "___some_node.40pubsub.2eexample.2eorg@ap.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
463 ) |
3733 | 464 |
465 @ed | |
466 async def test_ap_handle_convert_to_jid_and_node(self, ap_gateway, monkeypatch): | |
467 """AP actor handle convert correctly to JID and pubsub node""" | |
468 get_jid_node = ap_gateway.getJIDAndNode | |
469 | |
470 # for following assertion, host is not a pubsub service | |
471 with patch.object(ap_gateway, "isPubsub") as isPubsub: | |
472 isPubsub.return_value = False | |
473 | |
474 # simple local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
475 assert await get_jid_node("toto@test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
476 jid.JID("toto@test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
477 None, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
478 ) |
3733 | 479 |
480 # simple external jid | |
481 | |
482 ## with "local_only" set, it should raise an exception | |
483 with pytest.raises(exceptions.PermissionError): | |
484 await get_jid_node("toto@example.org") | |
485 | |
486 ## with "local_only" unset, it should work | |
487 with monkeypatch.context() as m: | |
488 m.setattr(ap_gateway, "local_only", False, raising=True) | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
489 assert await get_jid_node("toto@example.org") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
490 jid.JID("toto@example.org"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
491 None, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
492 ) |
3733 | 493 |
494 # explicit node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
495 assert await get_jid_node("tata---toto@test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
496 jid.JID("toto@test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
497 "tata", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
498 ) |
3733 | 499 |
500 # for following assertion, host is a pubsub service | |
501 with patch.object(ap_gateway, "isPubsub") as isPubsub: | |
502 isPubsub.return_value = True | |
503 | |
504 # simple local node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
505 assert await get_jid_node("toto@pubsub.test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
506 jid.JID("pubsub.test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
507 "toto", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
508 ) |
3733 | 509 |
510 # encoded local node | |
511 assert await get_jid_node( | |
512 "___urn.3axmpp.3amicroblog.3a0@pubsub.test.example" | |
513 ) == (jid.JID("pubsub.test.example"), "urn:xmpp:microblog:0") | |
514 | |
515 @ed | |
516 async def test_ap_to_pubsub_conversion(self, ap_gateway, monkeypatch): | |
517 """AP requests are converted to pubsub""" | |
518 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) | |
519 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) | |
520 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) | |
521 | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
522 actor_data = await ap_gateway.getAPActorDataFromAccount(TEST_AP_ACCOUNT) |
3735
04ecc8eeb81a
tests (ap-gateway): fix use of outbox URL to get items
Goffi <goffi@goffi.org>
parents:
3733
diff
changeset
|
523 outbox = await ap_gateway.apGetObject(actor_data, "outbox") |
04ecc8eeb81a
tests (ap-gateway): fix use of outbox URL to get items
Goffi <goffi@goffi.org>
parents:
3733
diff
changeset
|
524 items, rsm_resp = await ap_gateway.getAPItems(outbox, 2) |
3733 | 525 |
526 assert rsm_resp.count == 4 | |
527 assert rsm_resp.index == 0 | |
528 assert rsm_resp.first == "https://example.org/users/test_user/statuses/4" | |
529 assert rsm_resp.last == "https://example.org/users/test_user/statuses/3" | |
530 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
531 title_xhtml = self.getTitleXHTML(items[0]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
532 assert title_xhtml.toXml() == ( |
3733 | 533 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
534 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 4</p></div>" | |
535 "</title>" | |
536 ) | |
537 author_uri = str( | |
538 [e for e in items[0].entry.author.elements() if e.name == "uri"][0] | |
539 ) | |
540 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
541 assert str(items[0].entry.published) == "2021-12-16T17:25:03Z" | |
542 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
543 title_xhtml = self.getTitleXHTML(items[1]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
544 assert title_xhtml.toXml() == ( |
3733 | 545 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
546 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 3</p></div>" | |
547 "</title>" | |
548 ) | |
549 author_uri = str( | |
550 [e for e in items[1].entry.author.elements() if e.name == "uri"][0] | |
551 ) | |
552 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
553 assert str(items[1].entry.published) == "2021-12-16T17:26:03Z" | |
554 | |
555 items, rsm_resp = await ap_gateway.getAPItems( | |
3735
04ecc8eeb81a
tests (ap-gateway): fix use of outbox URL to get items
Goffi <goffi@goffi.org>
parents:
3733
diff
changeset
|
556 outbox, |
3733 | 557 max_items=2, |
558 after_id="https://example.org/users/test_user/statuses/3", | |
559 ) | |
560 | |
561 assert rsm_resp.count == 4 | |
562 assert rsm_resp.index == 2 | |
563 assert rsm_resp.first == "https://example.org/users/test_user/statuses/2" | |
564 assert rsm_resp.last == "https://example.org/users/test_user/statuses/1" | |
565 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
566 title_xhtml = self.getTitleXHTML(items[0]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
567 assert title_xhtml.toXml() == ( |
3733 | 568 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
569 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 2</p></div>" | |
570 "</title>" | |
571 ) | |
572 author_uri = str( | |
573 [e for e in items[0].entry.author.elements() if e.name == "uri"][0] | |
574 ) | |
575 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
576 assert str(items[0].entry.published) == "2021-12-16T17:27:03Z" | |
577 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
578 title_xhtml = self.getTitleXHTML(items[1]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
579 assert title_xhtml.toXml() == ( |
3733 | 580 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
581 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 1</p></div>" | |
582 "</title>" | |
583 ) | |
584 author_uri = str( | |
585 [e for e in items[1].entry.author.elements() if e.name == "uri"][0] | |
586 ) | |
587 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
588 assert str(items[1].entry.published) == "2021-12-16T17:28:03Z" | |
589 | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
590 items, rsm_resp = await ap_gateway.getAPItems(outbox, max_items=1, start_index=2) |
3733 | 591 |
592 assert rsm_resp.count == 4 | |
593 assert rsm_resp.index == 2 | |
594 assert rsm_resp.first == "https://example.org/users/test_user/statuses/2" | |
595 assert rsm_resp.last == "https://example.org/users/test_user/statuses/2" | |
596 assert len(items) == 1 | |
597 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
598 title_xhtml = self.getTitleXHTML(items[0]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
599 assert title_xhtml.toXml() == ( |
3733 | 600 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
601 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 2</p></div>" | |
602 "</title>" | |
603 ) | |
604 assert str(items[0].entry.published) == "2021-12-16T17:27:03Z" | |
605 | |
606 items, rsm_resp = await ap_gateway.getAPItems( | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
607 outbox, max_items=3, chronological_pagination=False |
3733 | 608 ) |
609 assert rsm_resp.count == 4 | |
610 assert rsm_resp.index == 1 | |
611 assert rsm_resp.first == "https://example.org/users/test_user/statuses/3" | |
612 assert rsm_resp.last == "https://example.org/users/test_user/statuses/1" | |
613 assert len(items) == 3 | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
614 title_xhtml = self.getTitleXHTML(items[0]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
615 assert title_xhtml.toXml() == ( |
3733 | 616 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
617 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 3</p></div>" | |
618 "</title>" | |
619 ) | |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
620 title_xhtml = self.getTitleXHTML(items[2]) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
621 assert title_xhtml.toXml() == ( |
3733 | 622 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
623 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 1</p></div>" | |
624 "</title>" | |
625 ) | |
626 | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
627 def ap_request_params( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
628 self, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
629 ap_gateway, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
630 type_: Optional[str] = None, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
631 url: Optional[str] = None, |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
632 data: Optional[dict] = None, |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
633 query_data: Optional[dict] = None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
634 signing_actor: Optional[str] = None, |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
635 ) -> Dict[str, Any]: |
3733 | 636 """Generate parameters for HTTPAPGServer's AP*Request |
637 | |
638 @param type_: one of the AP query type (e.g. "outbox") | |
639 @param url: URL to query (mutually exclusif with type_) | |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
640 @param data: object used as body of the request |
3733 | 641 @param query_data: query data as returned by parse.parse_qs |
642 @return dict with kw params to use | |
643 """ | |
644 assert type_ and url is None or url and type_ is None | |
645 if type_ is not None: | |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
646 path = f"_ap/{type_}/some_user@test.example" |
3733 | 647 else: |
648 url_parsed = parse.urlparse(url) | |
649 path = url_parsed.path.lstrip("/") | |
650 type_ = path.split("/")[1] | |
651 if query_data is None: | |
652 query_data = parse.parse_qs(url_parsed.query) | |
653 | |
654 if query_data: | |
655 uri = f"{path}?{parse.urlencode(query_data, doseq=True)}" | |
656 else: | |
657 uri = path | |
658 | |
659 test_jid = jid.JID("some_user@test.example") | |
660 request = Request(MagicMock()) | |
661 request.path = path.encode() | |
662 request.uri = uri.encode() | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
663 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
664 ap_url = parse.urljoin(f"https://{ap_gateway.public_url}", path) |
3733 | 665 kwargs = { |
666 "request": request, | |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
667 "data": data, |
3733 | 668 "account_jid": test_jid, |
669 "node": None, | |
670 "ap_account": test_jid.full(), | |
671 "ap_url": ap_url, | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
672 "signing_actor": signing_actor, |
3733 | 673 } |
674 if type_ == "outbox" and query_data: | |
675 kwargs["query_data"] = query_data | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
676 # signing_actor is not used for page requests |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
677 del kwargs["signing_actor"] |
3733 | 678 return kwargs |
679 | |
680 @ed | |
681 async def test_pubsub_to_ap_conversion(self, ap_gateway, monkeypatch): | |
682 """Pubsub nodes are converted to AP collections""" | |
683 monkeypatch.setattr(ap_gateway._p, "getItems", mock_getItems) | |
684 outbox = await ap_gateway.server.resource.APOutboxRequest( | |
685 **self.ap_request_params(ap_gateway, "outbox") | |
686 ) | |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
687 assert outbox["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
688 assert outbox["id"] == "https://test.example/_ap/outbox/some_user@test.example" |
3733 | 689 assert outbox["totalItems"] == len(XMPP_ITEMS) |
690 assert outbox["type"] == "OrderedCollection" | |
691 assert outbox["first"] | |
692 assert outbox["last"] | |
693 | |
694 first_page = await ap_gateway.server.resource.APOutboxPageRequest( | |
695 **self.ap_request_params(ap_gateway, url=outbox["first"]) | |
696 ) | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
697 assert first_page["@context"] == ["https://www.w3.org/ns/activitystreams"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
698 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
699 first_page["id"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
700 == "https://test.example/_ap/outbox/some_user@test.example?page=first" |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
701 ) |
3733 | 702 assert first_page["type"] == "OrderedCollectionPage" |
703 assert first_page["partOf"] == outbox["id"] | |
704 assert len(first_page["orderedItems"]) == len(XMPP_ITEMS) | |
705 first_item = first_page["orderedItems"][0] | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
706 assert first_item["@context"] == ["https://www.w3.org/ns/activitystreams"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
707 assert ( |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
708 first_item["id"] == "https://test.example/_ap/item/some_user@test.example/4" |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
709 ) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
710 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
711 first_item["actor"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
712 == "https://test.example/_ap/actor/some_user@test.example" |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
713 ) |
3733 | 714 assert first_item["type"] == "Create" |
715 first_item_obj = first_item["object"] | |
716 assert first_item_obj["id"] == first_item["id"] | |
717 assert first_item_obj["type"] == "Note" | |
718 assert first_item_obj["published"] == "2022-01-28T16:02:19Z" | |
719 assert first_item_obj["attributedTo"] == first_item["actor"] | |
720 assert first_item_obj["content"] == "<div><p>XMPP item 4</p></div>" | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
721 assert first_item_obj["to"] == ["https://www.w3.org/ns/activitystreams#Public"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
722 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
723 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
724 async def test_following_to_pps(self, ap_gateway, monkeypatch): |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
725 """AP following items are converted to Public Pubsub Subscription subscriptions""" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
726 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
727 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
728 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
729 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
730 items, __ = await ap_gateway.pubsub_service.items( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
731 jid.JID("toto@example.org"), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
732 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
733 ap_gateway._pps.subscriptions_node, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
734 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
735 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
736 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
737 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
738 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
739 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
740 ("local_user@test.example", "ext_user\\40example.org@ap.test.example") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
741 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
742 subscription_elt = next(items[idx].elements(NS_PPS, "subscription"), None) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
743 assert subscription_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
744 assert subscription_elt["node"] == ap_gateway._m.namespace |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
745 assert subscription_elt["service"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
746 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
747 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
748 async def test_followers_to_pps(self, ap_gateway, monkeypatch): |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
749 """AP followers items are converted to Public Pubsub Subscription subscribers""" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
750 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
751 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
752 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
753 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
754 items, __ = await ap_gateway.pubsub_service.items( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
755 jid.JID("toto@example.org"), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
756 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
757 ap_gateway._pps.getPublicSubscribersNode(ap_gateway._m.namespace), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
758 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
759 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
760 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
761 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
762 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
763 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
764 ("local_user@test.example", "ext_user\\40example.org@ap.test.example") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
765 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
766 subscriber_elt = next(items[idx].elements(NS_PPS, "subscriber"), None) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
767 assert subscriber_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
768 assert subscriber_elt["jid"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
769 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
770 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
771 async def test_pps_to_following(self, ap_gateway, monkeypatch): |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
772 """Public Pubsub Subscription subscriptions are converted to AP following items""" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
773 subscriptions = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
774 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
775 id="subscription_1", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
776 payload=ap_gateway._pps.buildSubscriptionElt( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
777 ap_gateway._m.namespace, jid.JID("local_user@test.example") |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
778 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
779 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
780 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
781 id="subscription_2", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
782 payload=ap_gateway._pps.buildSubscriptionElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
783 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
784 jid.JID("ext_user\\40example.org@ap.test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
785 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
786 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
787 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
788 monkeypatch.setattr( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
789 ap_gateway._p, "getItems", partial(mock_getItems, ret_items=subscriptions) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
790 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
791 following = await ap_gateway.server.resource.APFollowingRequest( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
792 **self.ap_request_params(ap_gateway, "following") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
793 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
794 assert following["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
795 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
796 following["id"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
797 == "https://test.example/_ap/following/some_user@test.example" |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
798 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
799 assert following["totalItems"] == len(subscriptions) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
800 assert following["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
801 assert following.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
802 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
803 first_page = following["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
804 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
805 assert len(first_page["orderedItems"]) == len(subscriptions) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
806 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
807 assert items == ["local_user@test.example", "ext_user@example.org"] |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
808 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
809 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
810 async def test_pps_to_followers(self, ap_gateway, monkeypatch): |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
811 """Public Pubsub Subscription subscribers are converted to AP followers""" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
812 subscribers = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
813 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
814 id="subscriber_1", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
815 payload=ap_gateway._pps.buildSubscriberElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
816 jid.JID("local_user@test.example") |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
817 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
818 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
819 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
820 id="subscriber_2", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
821 payload=ap_gateway._pps.buildSubscriberElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
822 jid.JID("ext_user\\40example.org@ap.test.example") |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
823 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
824 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
825 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
826 monkeypatch.setattr( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
827 ap_gateway._p, "getItems", partial(mock_getItems, ret_items=subscribers) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
828 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
829 followers = await ap_gateway.server.resource.APFollowersRequest( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
830 **self.ap_request_params(ap_gateway, "followers") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
831 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
832 assert followers["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
833 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
834 followers["id"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
835 == "https://test.example/_ap/followers/some_user@test.example" |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
836 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
837 assert followers["totalItems"] == len(subscribers) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
838 assert followers["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
839 assert followers.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
840 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
841 first_page = followers["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
842 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
843 assert len(first_page["orderedItems"]) == len(subscribers) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
844 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
845 assert items == ["local_user@test.example", "ext_user@example.org"] |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
846 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
847 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
848 async def test_xmpp_message_to_ap_direct_message(self, ap_gateway, monkeypatch): |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
849 """XMPP message are sent as AP direct message""" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
850 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
851 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
852 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
3808
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
853 mess_data = { |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
854 "from": TEST_JID, |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
855 "to": ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
856 "type": "chat", |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
857 "message": {"": "This is a test message."}, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
858 "extra": {"origin-id": "123"}, |
3808
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
859 } |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
860 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
3808
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
861 await ap_gateway.onMessage(ap_gateway.client, mess_data) |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
862 url, actor_id, doc = signAndPost.call_args[0] |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
863 assert url == "https://example.org/users/test_user/inbox" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
864 assert actor_id == "https://test.example/_ap/actor/some_user@test.example" |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
865 obj = doc["object"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
866 assert doc["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
867 assert doc["actor"] == "https://test.example/_ap/actor/some_user@test.example" |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
868 assert obj["type"] == "Note" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
869 assert obj["content"] == "This is a test message." |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
870 assert obj["attributedTo"] == ( |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
871 "https://test.example/_ap/actor/some_user@test.example" |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
872 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
873 # we must have a direct message, thus the item must be only addressed to destinee |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
874 # ("to" attribute of the message), and the "Public" namespace must not be set |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
875 assert doc["to"] == ["https://example.org/users/test_user"] |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
876 assert obj["to"] == ["https://example.org/users/test_user"] |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
877 for field in ("bto", "cc", "bcc", "audience"): |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
878 assert field not in doc |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
879 assert field not in obj |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
880 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
881 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
882 async def test_ap_direct_message_to_xmpp_message(self, ap_gateway, monkeypatch): |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
883 """AP direct message are sent as XMPP message (not Pubsub)""" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
884 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
885 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
886 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
887 # we have to patch DeferredList to not wait forever |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
888 monkeypatch.setattr(defer, "DeferredList", AsyncMock()) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
889 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
890 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
891 direct_ap_message = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
892 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
893 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
894 "content": "<p>test direct message</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
895 "contentMap": {"en": "<p>test direct message</p>"}, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
896 "id": f"{TEST_AP_ACTOR_ID}/statuses/123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
897 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
898 "to": [xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
899 "type": "Note", |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
900 } |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
901 client = ap_gateway.client.getVirtualClient( |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
902 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
903 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
904 with patch.object(client, "sendMessage") as sendMessage: |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
905 await ap_gateway.newAPItem( |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
906 client, None, ap_gateway._m.namespace, direct_ap_message |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
907 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
908 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
909 # sendMessage must be called for <message> stanza, and the "message" argument must |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
910 # be set to the content of the original AP message |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
911 assert sendMessage.called |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
912 assert sendMessage.call_args.args[0] == TEST_JID |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
913 assert sendMessage.call_args.args[1] == {"": "test direct message"} |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
914 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
915 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
916 async def test_pubsub_retract_to_ap_delete(self, ap_gateway, monkeypatch): |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
917 """Pubsub retract requests are converted to AP delete activity""" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
918 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
919 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
920 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
921 retract_id = "retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
922 retract_elt = domish.Element((pubsub.NS_PUBSUB_EVENT, "retract")) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
923 retract_elt["id"] = retract_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
924 items_event = pubsub.ItemsEvent( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
925 sender=TEST_JID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
926 recipient=ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
927 nodeIdentifier=ap_gateway._m.namespace, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
928 items=[retract_elt], |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
929 headers={}, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
930 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
931 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
932 signAndPost.return_value = FakeTReqPostResponse() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
933 # we simulate the reception of a retract event |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
934 await ap_gateway._itemsReceived(ap_gateway.client, items_event) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
935 url, actor_id, doc = signAndPost.call_args[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
936 jid_account = await ap_gateway.getAPAccountFromJidAndNode(TEST_JID, None) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
937 jid_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, jid_account) |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
938 assert url == f"{TEST_BASE_URL}/inbox" |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
939 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
940 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
941 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
942 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
943 assert obj["type"] == ap_const.TYPE_TOMBSTONE |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
944 url_item_id = ap_gateway.buildAPURL(ap_const.TYPE_ITEM, jid_account, retract_id) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
945 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
946 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
947 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
948 async def test_ap_delete_to_pubsub_retract(self, ap_gateway): |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
949 """AP delete activity is converted to pubsub retract""" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
950 client = ap_gateway.client.getVirtualClient( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
951 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
952 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
953 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
954 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
955 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
956 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
957 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
958 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
959 "object": {"id": f"{TEST_AP_ACTOR_ID}/item/123", "type": "Tombstone"}, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
960 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
961 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
962 with patch.multiple( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
963 ap_gateway.host.memory.storage, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
964 get=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
965 getPubsubNode=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
966 deletePubsubItems=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
967 ) as mock_objs: |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
968 mock_objs["get"].return_value = None |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
969 cached_node = MagicMock() |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
970 mock_objs["getPubsubNode"].return_value = cached_node |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
971 subscription = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
972 subscription.state = SubscriptionState.SUBSCRIBED |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
973 subscription.subscriber = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
974 cached_node.subscriptions = [subscription] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
975 with patch.object( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
976 ap_gateway.pubsub_service, "notifyRetract" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
977 ) as notifyRetract: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
978 # we simulate a received Delete activity |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
979 await ap_gateway.newAPDeleteItem( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
980 client=client, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
981 destinee=None, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
982 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
983 item=ap_item, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
984 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
985 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
986 # item is deleted from database |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
987 deletePubsubItems = mock_objs["deletePubsubItems"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
988 assert deletePubsubItems.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
989 assert deletePubsubItems.call_args.args[1] == [ap_item["id"]] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
990 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
991 # retraction notification is sent to subscribers |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
992 assert notifyRetract.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
993 assert notifyRetract.call_args.args[0] == client.jid |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
994 assert notifyRetract.call_args.args[1] == ap_gateway._m.namespace |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
995 notifications = notifyRetract.call_args.args[2] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
996 assert len(notifications) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
997 subscriber, __, item_elts = notifications[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
998 assert subscriber == TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
999 assert len(item_elts) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1000 item_elt = item_elts[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1001 assert isinstance(item_elt, domish.Element) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1002 assert item_elt.name == "item" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1003 assert item_elt["id"] == ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1004 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1005 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1006 async def test_message_retract_to_ap_delete(self, ap_gateway, monkeypatch): |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1007 """Message retract requests are converted to AP delete activity""" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1008 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1009 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1010 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1011 # origin ID is the ID of the message to retract |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1012 origin_id = "mess_retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1013 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1014 # we call retractByOriginId to get the message element of a retraction request |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1015 fake_client = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1016 fake_client.jid = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1017 dest_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1018 ap_gateway._r.retractByOriginId(fake_client, dest_jid, origin_id) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1019 # message_retract_elt is the message which would be sent for a retraction |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1020 message_retract_elt = fake_client.send.call_args.args[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1021 apply_to_elt = next(message_retract_elt.elements(NS_FASTEN, "apply-to")) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1022 retract_elt = apply_to_elt.retract |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1023 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1024 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1025 signAndPost.return_value = FakeTReqPostResponse() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1026 fake_fastened_elts = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1027 fake_fastened_elts.id = origin_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1028 # we simulate the reception of a retract event using the message element that |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1029 # we generated above |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1030 await ap_gateway._onMessageRetract( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1031 ap_gateway.client, message_retract_elt, retract_elt, fake_fastened_elts |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1032 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1033 url, actor_id, doc = signAndPost.call_args[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1034 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1035 # the AP delete activity must have been sent through signAndPost |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1036 # we check its values |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1037 jid_account = await ap_gateway.getAPAccountFromJidAndNode(TEST_JID, None) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1038 jid_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, jid_account) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1039 assert url == f"{TEST_BASE_URL}/users/{TEST_USER}/inbox" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1040 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1041 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1042 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1043 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1044 assert obj["type"] == ap_const.TYPE_TOMBSTONE |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1045 url_item_id = ap_gateway.buildAPURL(ap_const.TYPE_ITEM, jid_account, origin_id) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1046 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1047 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1048 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1049 async def test_ap_delete_to_message_retract(self, ap_gateway, monkeypatch): |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1050 """AP delete activity is converted to message retract""" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1051 # note: a message retract is used when suitable message is found in history, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1052 # otherwise it should be in pubsub cache and it's a pubsub retract (tested above |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1053 # by ``test_ap_delete_to_pubsub_retract``) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1054 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1055 # we don't want actual queries in database |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1056 retractDBHistory = AsyncMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1057 monkeypatch.setattr(ap_gateway._r, "retractDBHistory", retractDBHistory) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1058 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1059 client = ap_gateway.client.getVirtualClient( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1060 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1061 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1062 fake_send = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1063 monkeypatch.setattr(client, "send", fake_send) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1064 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1065 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1066 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1067 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1068 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1069 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1070 "object": {"id": f"{TEST_AP_ACTOR_ID}/item/123", "type": "Tombstone"}, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1071 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1072 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1073 with patch.object(ap_gateway.host.memory.storage, "get") as storage_get: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1074 fake_history = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1075 fake_history.source_jid = client.jid |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1076 fake_history.dest_jid = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1077 fake_history.origin_id = ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1078 storage_get.return_value = fake_history |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1079 # we simulate a received Delete activity |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1080 await ap_gateway.newAPDeleteItem( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1081 client=client, destinee=None, node=ap_gateway._m.namespace, item=ap_item |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1082 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1083 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1084 # item is deleted from database |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1085 assert retractDBHistory.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1086 assert retractDBHistory.call_args.args[0] == client |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1087 assert retractDBHistory.call_args.args[1] == fake_history |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1088 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1089 # retraction notification is sent to destinee |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1090 assert fake_send.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1091 sent_elt = fake_send.call_args.args[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1092 assert sent_elt.name == "message" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1093 assert sent_elt["from"] == client.jid.full() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1094 assert sent_elt["to"] == TEST_JID.full() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1095 apply_to_elt = next(sent_elt.elements(NS_FASTEN, "apply-to")) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1096 assert apply_to_elt["id"] == ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1097 retract_elt = apply_to_elt.retract |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1098 assert retract_elt is not None |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1099 assert retract_elt.uri == NS_MESSAGE_RETRACT |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1100 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1101 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1102 async def test_ap_actor_metadata_to_vcard(self, ap_gateway, monkeypatch): |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1103 """AP actor metadata are converted to XMPP/vCard4""" |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1104 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1105 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1106 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1107 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1108 items, __ = await ap_gateway.pubsub_service.items( |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1109 jid.JID("toto@example.org"), |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1110 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1111 # VCard4 node |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1112 ap_gateway._v.node, |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1113 None, |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1114 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1115 None, |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1116 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1117 assert len(items) == 1 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1118 vcard_elt = next(items[0].elements(ap_gateway._v.namespace, "vcard")) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1119 vcard = ap_gateway._v.vcard2Dict(vcard_elt) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1120 assert "test_user nickname" in vcard["nicknames"] |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1121 assert vcard["description"] == "test account" |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1122 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1123 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1124 async def test_identity_data_to_ap_actor_metadata(self, ap_gateway): |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1125 """XMPP identity is converted to AP actor metadata""" |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1126 # XXX: XMPP identity is normally an amalgam of metadata from several |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1127 # XEPs/locations (vCard4, vcard-tmp, etc) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1128 with patch.object(ap_gateway._i, "getIdentity") as getIdentity: |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1129 getIdentity.return_value = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1130 "nicknames": ["nick1", "nick2"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1131 "description": "test description", |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1132 } |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1133 actor_data = await ap_gateway.server.resource.APActorRequest( |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1134 **self.ap_request_params(ap_gateway, ap_const.TYPE_ACTOR) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1135 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1136 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1137 # only the first nickname should be used |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1138 assert actor_data["name"] == "nick1" |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1139 assert actor_data["summary"] == "test description" |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1140 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1141 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1142 async def test_direct_addressing_mention_to_reference(self, ap_gateway, monkeypatch): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1143 """AP mentions by direct addressing are converted to XEP-0372 references""" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1144 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1145 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1146 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1147 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1148 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1149 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1150 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1151 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1152 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1153 "content": "<p>test mention by direct addressing</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1154 "id": f"{TEST_AP_ACTOR_ID}/statuses/direct_addr_123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1155 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1156 "to": [ap_const.NS_AP_PUBLIC, xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1157 "type": "Note", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1158 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1159 client = ap_gateway.client.getVirtualClient( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1160 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1161 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1162 monkeypatch.setattr(client, "sendMessage", MagicMock()) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1163 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1164 with patch.object(ap_gateway._refs, "sendReference") as sendReference: |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1165 await ap_gateway.newAPItem( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1166 client, None, ap_gateway._m.namespace, direct_addr_mention |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1167 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1168 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1169 assert sendReference.call_count == 1 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1170 assert sendReference.call_args.kwargs["to_jid"] == TEST_JID |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1171 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1172 local_actor_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1173 expected_anchor = xmpp_uri.buildXMPPUri( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1174 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1175 path=local_actor_jid.full(), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1176 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1177 item=direct_addr_mention["id"], |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1178 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1179 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1180 assert sendReference.call_args.kwargs["anchor"] == expected_anchor |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1181 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1182 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1183 async def test_tag_mention_to_reference(self, ap_gateway, monkeypatch): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1184 """AP mentions in "tag" field are converted to XEP-0372 references""" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1185 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1186 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1187 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1188 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1189 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1190 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1191 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1192 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1193 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1194 "content": "<p>test mention by tag</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1195 "id": f"{TEST_AP_ACTOR_ID}/statuses/tag_123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1196 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1197 "to": [ap_const.NS_AP_PUBLIC], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1198 "tag": [{"type": "Mention", "href": xmpp_actor_id, "name": f"@{TEST_JID}'"}], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1199 "type": "Note", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1200 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1201 client = ap_gateway.client.getVirtualClient( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1202 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1203 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1204 monkeypatch.setattr(client, "sendMessage", MagicMock()) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1205 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1206 with patch.object(ap_gateway._refs, "sendReference") as sendReference: |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1207 await ap_gateway.newAPItem( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1208 client, None, ap_gateway._m.namespace, direct_addr_mention |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1209 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1210 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1211 assert sendReference.call_count == 1 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1212 assert sendReference.call_args.kwargs["to_jid"] == TEST_JID |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1213 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1214 local_actor_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1215 expected_anchor = xmpp_uri.buildXMPPUri( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1216 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1217 path=local_actor_jid.full(), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1218 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1219 item=direct_addr_mention["id"], |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1220 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1221 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1222 assert sendReference.call_args.kwargs["anchor"] == expected_anchor |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1223 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1224 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1225 async def test_auto_mentions(self, ap_gateway, monkeypatch): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1226 """Check that mentions in body are converted to AP mentions""" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1227 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1228 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1229 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1230 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1231 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1232 "author_jid": TEST_JID.full(), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1233 "content": f"mention of @{TEST_AP_ACCOUNT}", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1234 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1235 "node": ap_gateway._m.namespace, |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1236 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1237 ap_item = await ap_gateway.mb_data_2_ap_item( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1238 ap_gateway.client, mb_data, public=True |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1239 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1240 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1241 ap_object = ap_item["object"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1242 assert TEST_AP_ACTOR_ID in ap_object["to"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1243 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1244 "type": ap_const.TYPE_MENTION, |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1245 "href": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1246 "name": f"@{TEST_AP_ACCOUNT}", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1247 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1248 assert expected_mention in ap_object["tag"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1249 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1250 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1251 async def test_no_auto_mentions_when_not_public(self, ap_gateway, monkeypatch): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1252 """Check that no mention is send when the message is not public""" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1253 # this is the same test as test_auto_mentions above, except that public is not set |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1254 # in mb_data_2_ap_item |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1255 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1256 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1257 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1258 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1259 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1260 "author_jid": TEST_JID.full(), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1261 "content": f"mention of @{TEST_AP_ACCOUNT}", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1262 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1263 "node": ap_gateway._m.namespace, |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1264 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1265 ap_item = await ap_gateway.mb_data_2_ap_item( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1266 ap_gateway.client, mb_data, public=False |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1267 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1268 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1269 ap_object = ap_item["object"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1270 assert "to" not in ap_object |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1271 assert "tag" not in ap_object |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1272 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1273 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1274 async def test_xmpp_reference_to_ap_mention(self, ap_gateway, monkeypatch): |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1275 """Check that XEP-0372 references are converted to AP mention""" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1276 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1277 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1278 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1279 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1280 local_actor_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1281 item_elt = XMPP_ITEMS[0] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1282 anchor = xmpp_uri.buildXMPPUri( |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1283 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1284 path=TEST_JID.full(), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1285 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1286 item=item_elt["id"], |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1287 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1288 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1289 ref_data: Dict[str, Union[str, int, dict]] = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1290 "uri": xmpp_uri.buildXMPPUri(None, path=local_actor_jid.full()), |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1291 "type_": "mention", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1292 "anchor": anchor, |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1293 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1294 reference_elt = ap_gateway._refs.buildRefElement(**ref_data) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1295 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1296 # we now update ref_data to look like what is received in the trigger |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1297 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1298 ref_data["parsed_uri"] = xmpp_uri.parseXMPPUri(ref_data["uri"]) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1299 ref_data["parsed_anchor"] = xmpp_uri.parseXMPPUri(ref_data["anchor"]) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1300 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1301 # "type" is a builtin function, thus "type_" is used in buildRefElement, but in |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1302 # ref_data is "type" without underscore |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1303 ref_data["type"] = ref_data["type_"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1304 del ref_data["type_"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1305 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1306 message_elt = domish.Element((None, "message")) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1307 message_elt.addChild(reference_elt) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1308 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1309 with patch.object(ap_gateway.host.memory.storage, "getItems") as getItems: |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1310 # getItems returns a sqla_mapping.PubsubItem, thus we need to fake it and set |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1311 # the item_elt we want to use in its "data" attribute |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1312 mock_pubsub_item = MagicMock |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1313 mock_pubsub_item.data = item_elt |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1314 getItems.return_value = ([mock_pubsub_item], {}) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1315 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1316 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1317 await ap_gateway._onReferenceReceived( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1318 ap_gateway.client, message_elt, ref_data |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1319 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1320 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1321 # when reference is received, the referencing item must be sent to referenced |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1322 # actor, and they must be in "to" field and in "tag" |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1323 assert signAndPost.call_count == 1 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1324 send_ap_item = signAndPost.call_args.args[-1] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1325 ap_object = send_ap_item["object"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1326 assert TEST_AP_ACTOR_ID in ap_object["to"] |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1327 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1328 "type": ap_const.TYPE_MENTION, |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1329 "href": TEST_AP_ACTOR_ID, |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1330 # we don't have a prefixing "@" here, because it's not needed in referencing |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1331 # item with XMPP |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1332 "name": f"{TEST_AP_ACCOUNT}", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1333 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1334 assert expected_mention in ap_object["tag"] |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1335 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1336 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1337 async def test_xmpp_repeat_to_ap_announce(self, ap_gateway, monkeypatch): |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1338 """XEP-0272 post repeat is converted to AP Announce activity""" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1339 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1340 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1341 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1342 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1343 # JID repeated AP actor (also the recipient of the message) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1344 recipient_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1345 # repeated item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1346 ap_item = TEST_AP_ITEMS[0] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1347 ap_item_url = xmpp_uri.buildXMPPUri( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1348 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1349 path=recipient_jid.full(), |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1350 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1351 item=ap_item["id"], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1352 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1353 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1354 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1355 <item id="123" publisher="{TEST_JID}/res.123"> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1356 <entry xmlns="http://www.w3.org/2005/Atom"> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1357 <title type="text">test message 1</title> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1358 <title type="xhtml"> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1359 <div xmlns="http://www.w3.org/1999/xhtml"> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1360 <p>test message 1</p> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1361 </div> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1362 </title> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1363 <author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1364 <name>test_user</name> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1365 <uri>xmpp:{recipient_jid}</uri> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1366 </author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1367 <updated>2022-07-21T14:38:53Z</updated> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1368 <published>2022-07-21T14:38:53Z</published> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1369 <id>{ap_item["id"]}</id> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1370 <link href="{ap_item_url}" rel="via"/> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1371 </entry> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1372 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1373 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1374 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1375 item_elt.uri = pubsub.NS_PUBSUB_EVENT |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1376 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1377 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1378 signAndPost.return_value.code = 202 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1379 await ap_gateway.convertAndPostItems( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1380 ap_gateway.client, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1381 TEST_AP_ACCOUNT, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1382 TEST_JID, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1383 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1384 [item_elt], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1385 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1386 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1387 assert signAndPost.called |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1388 url, actor_id, doc = signAndPost.call_args.args |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1389 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1390 assert actor_id == ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1391 assert doc["type"] == "Announce" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1392 assert ap_const.NS_AP_PUBLIC in doc["to"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1393 assert doc["object"] == ap_item["id"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1394 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1395 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1396 async def test_ap_announce_to_xmpp_repeat(self, ap_gateway, monkeypatch): |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1397 """AP Announce activity is converted to XEP-0272 post repeat""" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1398 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1399 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1400 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1401 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1402 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1403 # announced item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1404 xmpp_item = XMPP_ITEMS[0] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1405 xmpp_item_url = ap_gateway.buildAPURL( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1406 ap_const.TYPE_ITEM, TEST_JID.userhost(), xmpp_item["id"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1407 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1408 announce = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1409 "@context": "https://www.w3.org/ns/activitystreams", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1410 "type": "Announce", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1411 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1412 "cc": [xmpp_actor_id, TEST_USER_DATA["followers"]], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1413 "id": "https://example.org/announce/123", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1414 "object": xmpp_item_url, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1415 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1416 "to": [ap_const.NS_AP_PUBLIC], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1417 } |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1418 with patch.object(ap_gateway.host.memory.storage, "getItems") as getItems: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1419 mock_pubsub_item = MagicMock |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1420 mock_pubsub_item.data = xmpp_item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1421 getItems.return_value = ([mock_pubsub_item], {}) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1422 with patch.object( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1423 ap_gateway.host.memory.storage, "cachePubsubItems" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1424 ) as cachePubsubItems: |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1425 await ap_gateway.server.resource.handleAnnounceActivity( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1426 Request(MagicMock()), announce, None, None, None, "", TEST_AP_ACTOR_ID |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1427 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1428 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1429 assert cachePubsubItems.called |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1430 # the microblog data put in cache correspond to the item sent to subscribers |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1431 __, __, __, [mb_data] = cachePubsubItems.call_args.args |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1432 extra = mb_data["extra"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1433 assert "repeated" in extra |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1434 repeated = extra["repeated"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1435 assert repeated["by"] == ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT).full() |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1436 xmpp_item_xmpp_url = xmpp_uri.buildXMPPUri( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1437 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1438 path=TEST_JID.full(), |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1439 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1440 item=xmpp_item["id"], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1441 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1442 assert repeated["uri"] == xmpp_item_xmpp_url |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1443 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1444 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1445 async def test_xmpp_attachment_noticed_to_ap_like(self, ap_gateway, monkeypatch): |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1446 """Pubsub-attachments ``noticed`` is converted to AP Like activity""" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1447 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1448 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1449 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1450 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1451 recipient_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1452 # noticed item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1453 ap_item = TEST_AP_ITEMS[0] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1454 attachment_node = ap_gateway._pa.getAttachmentNodeName( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1455 recipient_jid, ap_gateway._m.namespace, ap_item["id"] |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1456 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1457 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1458 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1459 <item id="{TEST_JID.userhost()}" published="{TEST_JID.userhostJID()}"> |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1460 <attachments xmlns="urn:xmpp:pubsub-attachments:1"> |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1461 <noticed timestamp="2022-07-22T12:29:45Z"/> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1462 </attachments> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1463 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1464 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1465 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1466 item_elt.uri = pubsub.NS_PUBSUB_EVENT |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1467 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1468 TEST_JID, recipient_jid, attachment_node, [item_elt], {} |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1469 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1470 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1471 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1472 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1473 await ap_gateway._itemsReceived(ap_gateway.client, items_event) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1474 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1475 assert signAndPost.called |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1476 url, actor_id, doc = signAndPost.call_args.args |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1477 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1478 assert actor_id == ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1479 assert doc["type"] == "Like" |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1480 assert ap_const.NS_AP_PUBLIC in doc["cc"] |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1481 assert doc["object"] == ap_item["id"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1482 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1483 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1484 async def test_ap_like_to_xmpp_noticed_attachment(self, ap_gateway, monkeypatch): |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1485 """AP Like activity is converted to ``noticed`` attachment""" |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1486 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1487 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1488 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1489 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1490 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1491 # liked item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1492 xmpp_item = XMPP_ITEMS[0] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1493 xmpp_item_url = ap_gateway.buildAPURL( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1494 ap_const.TYPE_ITEM, TEST_JID.userhost(), xmpp_item["id"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1495 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1496 like = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1497 "@context": "https://www.w3.org/ns/activitystreams", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1498 "type": "Like", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1499 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1500 "cc": [xmpp_actor_id, TEST_USER_DATA["followers"]], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1501 "id": "https://example.org/like/123", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1502 "object": xmpp_item_url, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1503 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1504 "to": [ap_const.NS_AP_PUBLIC], |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1505 } |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1506 with patch.object(ap_gateway.host.memory.storage, "getItems") as getItems: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1507 getItems.return_value = ([], {}) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1508 with patch.object(ap_gateway._p, "sendItems") as sendItems: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1509 await ap_gateway.server.resource.APInboxRequest( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1510 **self.ap_request_params( |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
1511 ap_gateway, "inbox", data=like, signing_actor=TEST_AP_ACTOR_ID |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1512 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1513 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1514 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1515 assert sendItems.called |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1516 si_client, si_service, si_node, [si_item] = sendItems.call_args.args |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1517 assert si_client.jid == ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1518 assert si_service == TEST_JID |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1519 assert si_node == ap_gateway._pa.getAttachmentNodeName( |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1520 TEST_JID, ap_gateway._m.namespace, xmpp_item["id"] |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1521 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1522 [parsed_item] = ap_gateway._pa.items2attachmentData(si_client, [si_item]) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1523 assert parsed_item["from"] == si_client.jid.full() |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1524 assert "noticed" in parsed_item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1525 assert parsed_item["noticed"]["noticed"] == True |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1526 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1527 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1528 async def test_xmpp_pubsub_reactions_to_ap(self, ap_gateway, monkeypatch): |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1529 """Pubsub-attachments ``reactions`` is converted to AP EmojiReact activity""" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1530 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1531 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1532 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1533 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1534 recipient_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1535 # noticed item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1536 ap_item = TEST_AP_ITEMS[0] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1537 ap_item_url = xmpp_uri.buildXMPPUri( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1538 "pubsub", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1539 path=recipient_jid.full(), |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1540 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1541 item=ap_item["id"], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1542 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1543 attachment_node = ap_gateway._pa.getAttachmentNodeName( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1544 recipient_jid, ap_gateway._m.namespace, ap_item["id"] |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1545 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1546 reactions = ["🦁", "🥜", "🎻"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1547 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1548 f""" |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1549 <item id="{TEST_JID.userhost()}" published="{TEST_JID.userhostJID()}"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1550 <attachments xmlns="urn:xmpp:pubsub-attachments:1"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1551 <reactions timestamp="2022-08-31T12:17:23Z"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1552 <reaction>{reactions[0]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1553 <reaction>{reactions[1]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1554 <reaction>{reactions[2]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1555 </reactions> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1556 </attachments> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1557 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1558 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1559 ) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1560 item_elt.uri = pubsub.NS_PUBSUB_EVENT |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1561 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1562 TEST_JID, recipient_jid, attachment_node, [item_elt], {} |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1563 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1564 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1565 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1566 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1567 await ap_gateway._itemsReceived(ap_gateway.client, items_event) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1568 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1569 assert signAndPost.call_count == 3 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1570 for idx, call_args in enumerate(signAndPost.call_args_list): |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1571 url, actor_id, doc = call_args.args |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1572 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1573 assert actor_id == ap_gateway.buildAPURL( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1574 ap_const.TYPE_ACTOR, TEST_JID.userhost() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1575 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1576 assert doc["type"] == "EmojiReact" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1577 assert ap_const.NS_AP_PUBLIC in doc["cc"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1578 assert doc["object"] == ap_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1579 # reactions can be sent in random order (due to the use of set), thus we check |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1580 # if each reaction appear once, and that nothing is left after all calls are |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1581 # checked. |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1582 assert doc["content"] in reactions |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1583 reactions.remove(doc["content"]) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1584 assert len(reactions) == 0 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1585 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1586 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1587 async def test_ap_reactions_to_xmpp(self, ap_gateway, monkeypatch): |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1588 """AP EmojiReact activity is converted to ``reactions`` attachment""" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1589 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1590 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "json_content", mock_treq_json) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1591 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1592 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1593 xmpp_actor_id = ap_gateway.buildAPURL(ap_const.TYPE_ACTOR, TEST_JID.userhost()) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1594 # item on which reaction is attached |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1595 xmpp_item = XMPP_ITEMS[0] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1596 xmpp_item_url = ap_gateway.buildAPURL( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1597 ap_const.TYPE_ITEM, TEST_JID.userhost(), xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1598 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1599 like = { |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1600 "@context": "https://www.w3.org/ns/activitystreams", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1601 "type": "EmojiReact", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1602 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1603 "cc": [xmpp_actor_id, TEST_USER_DATA["followers"]], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1604 "id": "https://example.org/like/123", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1605 "object": xmpp_item_url, |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1606 "content": "🐅", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1607 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1608 "to": [ap_const.NS_AP_PUBLIC], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1609 } |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1610 with patch.object(ap_gateway.host.memory.storage, "getItems") as getItems: |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1611 getItems.return_value = ([], {}) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1612 with patch.object(ap_gateway._p, "sendItems") as sendItems: |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1613 await ap_gateway.server.resource.APInboxRequest( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1614 **self.ap_request_params( |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
1615 ap_gateway, "inbox", data=like, signing_actor=TEST_AP_ACTOR_ID |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1616 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1617 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1618 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1619 assert sendItems.called |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1620 si_client, si_service, si_node, [si_item] = sendItems.call_args.args |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1621 assert si_client.jid == ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1622 assert si_service == TEST_JID |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1623 assert si_node == ap_gateway._pa.getAttachmentNodeName( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1624 TEST_JID, ap_gateway._m.namespace, xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1625 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1626 [parsed_item] = ap_gateway._pa.items2attachmentData(si_client, [si_item]) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1627 assert parsed_item["from"] == si_client.jid.full() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1628 assert "reactions" in parsed_item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1629 assert parsed_item["reactions"]["reactions"] == ["🐅"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1630 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1631 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1632 async def test_xmpp_event_2_ap_event(self, ap_gateway): |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1633 """XMPP events are converted to AP events""" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1634 # we use internal event data |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1635 event_data = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1636 "id": "event_123", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1637 "name": {"": "test event"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1638 "start": 1664222400.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1639 "end": 1664226000.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1640 "head-picture": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1641 "sources": [{"url": "https://example.org/head_picture.jpg"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1642 }, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1643 "descriptions": [{"description": "meeting for test", "type": "text"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1644 "categories": [{"term": "test", "wikidata_id": "Q1003030"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1645 "locations": [{"description": "somewhere in the world"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1646 "rsvp": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1647 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1648 "fields": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1649 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1650 "type": "list-single", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1651 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1652 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1653 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1654 {"value": "maybe", "label": "maybe"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1655 {"value": "yes", "label": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1656 {"value": "no", "label": "no"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1657 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1658 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1659 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1660 "namespace": "urn:xmpp:events:rsvp:0", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1661 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1662 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1663 "extra": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1664 "status": "confirmed", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1665 }, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1666 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1667 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1668 ap_item = await ap_gateway.ap_events.event_data_2_ap_item(event_data, TEST_JID) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1669 ap_object = ap_item["object"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1670 actor_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1671 "https://test.example/_ap/actor/" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1672 "___urn.3Axmpp.3Aevents.3A0---some_user@test.example" |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1673 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1674 event_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1675 "https://test.example/_ap/item/" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1676 "___urn.3Axmpp.3Aevents.3A0---some_user@test.example/event_123" |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1677 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1678 assert ap_object["name"] == "test event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1679 assert ap_object["actor"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1680 assert ap_object["attributedTo"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1681 assert ap_object["type"] == "Event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1682 assert ap_object["startTime"] == "2022-09-26T20:00:00Z" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1683 assert ap_object["endTime"] == "2022-09-26T21:00:00Z" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1684 assert ap_object["id"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1685 assert ap_object["url"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1686 assert ap_object["attachment"] == [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1687 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1688 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1689 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1690 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1691 "url": "https://example.org/head_picture.jpg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1692 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1693 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1694 assert ap_object["content"] == "<p>meeting for test</p>" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1695 assert ap_object["tag"] == [{"name": "#test", "type": "Hashtag"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1696 assert ap_object["location"] == {"name": "somewhere in the world"} |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1697 assert ap_object["ical:status"] == "CONFIRMED" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1698 assert ap_item["type"] == "Create" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1699 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1700 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1701 async def test_ap_event_2_xmpp_event(self, ap_gateway): |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1702 """AP events are converted to XMPP events""" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1703 test_actor = "___urn.3Axmpp.3Aevents.3A0---some_user@test.example" |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1704 ap_object = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1705 "actor": f"https://test.example/_ap/actor/{test_actor}", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1706 "attachment": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1707 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1708 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1709 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1710 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1711 "url": "https://example.org/head_picture.jpg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1712 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1713 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1714 "attributedTo": f"https://test.example/_ap/actor/{test_actor}", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1715 "content": "<p>meeting for test</p>", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1716 "endTime": "2022-09-26T21:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1717 "ical:status": "CONFIRMED", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1718 "id": f"https://test.example/_ap/item/{test_actor}/event_123", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1719 "location": {"name": "somewhere in the world"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1720 "name": "test event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1721 "startTime": "2022-09-26T20:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1722 "tag": [{"name": "#test", "type": "Hashtag"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1723 "to": ["https://www.w3.org/ns/activitystreams#Public"], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1724 "type": "Event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1725 "url": f"https://test.example/_ap/item/{test_actor}/event_123", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1726 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1727 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1728 event_data = await ap_gateway.ap_events.ap_item_2_event_data(ap_object) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1729 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1730 assert event_data["id"] == ap_object["id"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1731 assert event_data["name"] == {"": "test event"} |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1732 assert event_data["start"] == 1664222400 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1733 assert event_data["end"] == 1664226000 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1734 assert event_data["head-picture"] == { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1735 "sources": [{"url": "https://example.org/head_picture.jpg"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1736 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1737 assert event_data["descriptions"] == [{ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1738 "description": "<p>meeting for test</p>", "type": "xhtml" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1739 }] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1740 assert event_data["categories"] == [{"term": "test"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1741 assert event_data["locations"] == [{"description": "somewhere in the world"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1742 assert event_data["rsvp"] == [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1743 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1744 "fields": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1745 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1746 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1747 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1748 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1749 {"label": "yes", "value": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1750 {"label": "no", "value": "no"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1751 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1752 "required": True, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1753 "type": "list-single", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1754 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1755 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1756 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1757 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1758 assert event_data["extra"] == {"status": "confirmed"} |