Mercurial > libervia-backend
annotate tests/unit/test_ap-gateway.py @ 3924:e4631d073c8b
tools (stream): log error when a SatFile is closed:
error where only sent on `ProgressError`, but it is necessary to log the error as it may
happen before any progression is started.
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 Oct 2022 16:02:05 +0200 |
parents | d43b197735d1 |
children | acc9dfc8ba8d |
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", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
258 f"https://{PUBLIC_URL}/_ap/{TYPE_ACTOR}/local_user%40{PUBLIC_URL}", |
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", |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
276 f"https://{PUBLIC_URL}/_ap/{TYPE_ACTOR}/local_user%40{PUBLIC_URL}", |
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, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
632 doc: Optional[Any] = None, |
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_) | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
640 @param doc: if set, a document to embed in content of the request (will be |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
641 converted to JSON) |
3733 | 642 @param query_data: query data as returned by parse.parse_qs |
643 @return dict with kw params to use | |
644 """ | |
645 assert type_ and url is None or url and type_ is None | |
646 if type_ is not None: | |
647 path = f"_ap/{type_}/some_user%40test.example" | |
648 else: | |
649 url_parsed = parse.urlparse(url) | |
650 path = url_parsed.path.lstrip("/") | |
651 type_ = path.split("/")[1] | |
652 if query_data is None: | |
653 query_data = parse.parse_qs(url_parsed.query) | |
654 | |
655 if query_data: | |
656 uri = f"{path}?{parse.urlencode(query_data, doseq=True)}" | |
657 else: | |
658 uri = path | |
659 | |
660 test_jid = jid.JID("some_user@test.example") | |
661 request = Request(MagicMock()) | |
662 request.path = path.encode() | |
663 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
|
664 if doc is not None: |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
665 request.content = io.BytesIO(json.dumps(doc).encode()) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
666 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
667 ap_url = parse.urljoin(f"https://{ap_gateway.public_url}", path) |
3733 | 668 kwargs = { |
669 "request": request, | |
670 "account_jid": test_jid, | |
671 "node": None, | |
672 "ap_account": test_jid.full(), | |
673 "ap_url": ap_url, | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
674 "signing_actor": signing_actor, |
3733 | 675 } |
676 if type_ == "outbox" and query_data: | |
677 kwargs["query_data"] = query_data | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
678 # 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
|
679 del kwargs["signing_actor"] |
3733 | 680 return kwargs |
681 | |
682 @ed | |
683 async def test_pubsub_to_ap_conversion(self, ap_gateway, monkeypatch): | |
684 """Pubsub nodes are converted to AP collections""" | |
685 monkeypatch.setattr(ap_gateway._p, "getItems", mock_getItems) | |
686 outbox = await ap_gateway.server.resource.APOutboxRequest( | |
687 **self.ap_request_params(ap_gateway, "outbox") | |
688 ) | |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
689 assert outbox["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3733 | 690 assert outbox["id"] == "https://test.example/_ap/outbox/some_user%40test.example" |
691 assert outbox["totalItems"] == len(XMPP_ITEMS) | |
692 assert outbox["type"] == "OrderedCollection" | |
693 assert outbox["first"] | |
694 assert outbox["last"] | |
695 | |
696 first_page = await ap_gateway.server.resource.APOutboxPageRequest( | |
697 **self.ap_request_params(ap_gateway, url=outbox["first"]) | |
698 ) | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
699 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
|
700 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
701 first_page["id"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
702 == "https://test.example/_ap/outbox/some_user%40test.example?page=first" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
703 ) |
3733 | 704 assert first_page["type"] == "OrderedCollectionPage" |
705 assert first_page["partOf"] == outbox["id"] | |
706 assert len(first_page["orderedItems"]) == len(XMPP_ITEMS) | |
707 first_item = first_page["orderedItems"][0] | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
708 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
|
709 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
710 first_item["id"] == "https://test.example/_ap/item/some_user%40test.example/4" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
711 ) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
712 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
713 first_item["actor"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
714 == "https://test.example/_ap/actor/some_user%40test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
715 ) |
3733 | 716 assert first_item["type"] == "Create" |
717 first_item_obj = first_item["object"] | |
718 assert first_item_obj["id"] == first_item["id"] | |
719 assert first_item_obj["type"] == "Note" | |
720 assert first_item_obj["published"] == "2022-01-28T16:02:19Z" | |
721 assert first_item_obj["attributedTo"] == first_item["actor"] | |
722 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
|
723 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
|
724 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
725 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
726 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
|
727 """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
|
728 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
|
729 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
|
730 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
|
731 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
732 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
|
733 jid.JID("toto@example.org"), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
734 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
735 ap_gateway._pps.subscriptions_node, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
736 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
737 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
738 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
739 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
740 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
741 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
742 ("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
|
743 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
744 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
|
745 assert subscription_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
746 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
|
747 assert subscription_elt["service"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
748 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
749 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
750 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
|
751 """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
|
752 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
|
753 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
|
754 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
|
755 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
756 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
|
757 jid.JID("toto@example.org"), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
758 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
759 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
|
760 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
761 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
762 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
763 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
764 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
765 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
766 ("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
|
767 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
768 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
|
769 assert subscriber_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
770 assert subscriber_elt["jid"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
771 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
772 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
773 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
|
774 """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
|
775 subscriptions = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
776 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
777 id="subscription_1", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
778 payload=ap_gateway._pps.buildSubscriptionElt( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
779 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
|
780 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
781 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
782 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
783 id="subscription_2", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
784 payload=ap_gateway._pps.buildSubscriptionElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
785 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
786 jid.JID("ext_user\\40example.org@ap.test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
787 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
788 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
789 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
790 monkeypatch.setattr( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
791 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
|
792 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
793 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
|
794 **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
|
795 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
796 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
|
797 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
798 following["id"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
799 == "https://test.example/_ap/following/some_user%40test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
800 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
801 assert following["totalItems"] == len(subscriptions) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
802 assert following["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
803 assert following.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
804 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
805 first_page = following["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
806 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
807 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
|
808 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
809 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
|
810 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
811 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
812 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
|
813 """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
|
814 subscribers = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
815 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
816 id="subscriber_1", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
817 payload=ap_gateway._pps.buildSubscriberElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
818 jid.JID("local_user@test.example") |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
819 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
820 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
821 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
822 id="subscriber_2", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
823 payload=ap_gateway._pps.buildSubscriberElt( |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
824 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
|
825 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
826 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
827 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
828 monkeypatch.setattr( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
829 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
|
830 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
831 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
|
832 **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
|
833 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
834 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
|
835 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
836 followers["id"] |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
837 == "https://test.example/_ap/followers/some_user%40test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
838 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
839 assert followers["totalItems"] == len(subscribers) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
840 assert followers["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
841 assert followers.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
842 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
843 first_page = followers["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
844 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
845 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
|
846 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
847 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
|
848 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
849 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
850 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
|
851 """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
|
852 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
|
853 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
|
854 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
|
855 mess_data = { |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
856 "from": TEST_JID, |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
857 "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
|
858 "type": "chat", |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
859 "message": {"": "This is a test message."}, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
860 "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
|
861 } |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
862 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
|
863 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
|
864 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
|
865 assert url == "https://example.org/users/test_user/inbox" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
866 assert actor_id == "https://test.example/_ap/actor/some_user%40test.example" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
867 obj = doc["object"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
868 assert doc["@context"] == ["https://www.w3.org/ns/activitystreams"] |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
869 assert doc["actor"] == "https://test.example/_ap/actor/some_user%40test.example" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
870 assert obj["type"] == "Note" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
871 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
|
872 assert obj["attributedTo"] == ( |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
873 "https://test.example/_ap/actor/some_user%40test.example" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
874 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
875 # 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
|
876 # ("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
|
877 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
|
878 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
|
879 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
|
880 assert field not in doc |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
881 assert field not in obj |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
882 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
883 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
884 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
|
885 """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
|
886 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
|
887 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
|
888 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
|
889 # 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
|
890 monkeypatch.setattr(defer, "DeferredList", AsyncMock()) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
891 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
892 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
|
893 direct_ap_message = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
894 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
895 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
896 "content": "<p>test direct message</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
897 "contentMap": {"en": "<p>test direct message</p>"}, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
898 "id": f"{TEST_AP_ACTOR_ID}/statuses/123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
899 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
900 "to": [xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
901 "type": "Note", |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
902 } |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
903 client = ap_gateway.client.getVirtualClient( |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
904 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
|
905 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
906 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
|
907 await ap_gateway.newAPItem( |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
908 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
|
909 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
910 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
911 # 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
|
912 # 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
|
913 assert sendMessage.called |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
914 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
|
915 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
|
916 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
917 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
918 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
|
919 """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
|
920 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
|
921 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
|
922 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
|
923 retract_id = "retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
924 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
|
925 retract_elt["id"] = retract_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
926 items_event = pubsub.ItemsEvent( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
927 sender=TEST_JID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
928 recipient=ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT), |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
929 nodeIdentifier=ap_gateway._m.namespace, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
930 items=[retract_elt], |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
931 headers={}, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
932 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
933 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
|
934 signAndPost.return_value = FakeTReqPostResponse() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
935 # 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
|
936 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
|
937 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
|
938 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
|
939 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
|
940 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
|
941 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
942 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
943 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
944 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
945 assert obj["type"] == ap_const.TYPE_TOMBSTONE |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
946 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
|
947 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
948 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
949 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
950 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
|
951 """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
|
952 client = ap_gateway.client.getVirtualClient( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
953 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
954 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
955 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
956 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
957 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
958 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
959 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
960 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
961 "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
|
962 "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
|
963 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
964 with patch.multiple( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
965 ap_gateway.host.memory.storage, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
966 get=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
967 getPubsubNode=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
968 deletePubsubItems=DEFAULT, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
969 ) as mock_objs: |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
970 mock_objs["get"].return_value = None |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
971 cached_node = MagicMock() |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
972 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
|
973 subscription = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
974 subscription.state = SubscriptionState.SUBSCRIBED |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
975 subscription.subscriber = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
976 cached_node.subscriptions = [subscription] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
977 with patch.object( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
978 ap_gateway.pubsub_service, "notifyRetract" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
979 ) as notifyRetract: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
980 # we simulate a received Delete activity |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
981 await ap_gateway.newAPDeleteItem( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
982 client=client, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
983 destinee=None, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
984 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
985 item=ap_item, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
986 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
987 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
988 # item is deleted from database |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
989 deletePubsubItems = mock_objs["deletePubsubItems"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
990 assert deletePubsubItems.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
991 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
|
992 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
993 # retraction notification is sent to subscribers |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
994 assert notifyRetract.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
995 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
|
996 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
|
997 notifications = notifyRetract.call_args.args[2] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
998 assert len(notifications) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
999 subscriber, __, item_elts = notifications[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1000 assert subscriber == TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1001 assert len(item_elts) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1002 item_elt = item_elts[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1003 assert isinstance(item_elt, domish.Element) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1004 assert item_elt.name == "item" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1005 assert item_elt["id"] == ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1006 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1007 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1008 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
|
1009 """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
|
1010 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
|
1011 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
|
1012 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
|
1013 # 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
|
1014 origin_id = "mess_retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1015 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1016 # 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
|
1017 fake_client = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1018 fake_client.jid = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1019 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
|
1020 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
|
1021 # 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
|
1022 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
|
1023 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
|
1024 retract_elt = apply_to_elt.retract |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1025 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1026 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
|
1027 signAndPost.return_value = FakeTReqPostResponse() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1028 fake_fastened_elts = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1029 fake_fastened_elts.id = origin_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1030 # 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
|
1031 # we generated above |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1032 await ap_gateway._onMessageRetract( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1033 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
|
1034 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1035 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
|
1036 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1037 # 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
|
1038 # we check its values |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1039 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
|
1040 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
|
1041 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
|
1042 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1043 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1044 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1045 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1046 assert obj["type"] == ap_const.TYPE_TOMBSTONE |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1047 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
|
1048 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1049 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1050 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1051 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
|
1052 """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
|
1053 # 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
|
1054 # 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
|
1055 # by ``test_ap_delete_to_pubsub_retract``) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1056 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1057 # 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
|
1058 retractDBHistory = AsyncMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1059 monkeypatch.setattr(ap_gateway._r, "retractDBHistory", retractDBHistory) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1060 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1061 client = ap_gateway.client.getVirtualClient( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1062 ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1063 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1064 fake_send = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1065 monkeypatch.setattr(client, "send", fake_send) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1066 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1067 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1068 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1069 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1070 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1071 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1072 "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
|
1073 "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
|
1074 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1075 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
|
1076 fake_history = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1077 fake_history.source_jid = client.jid |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1078 fake_history.dest_jid = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1079 fake_history.origin_id = ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1080 storage_get.return_value = fake_history |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1081 # we simulate a received Delete activity |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1082 await ap_gateway.newAPDeleteItem( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1083 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
|
1084 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1085 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1086 # item is deleted from database |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1087 assert retractDBHistory.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1088 assert retractDBHistory.call_args.args[0] == client |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1089 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
|
1090 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1091 # retraction notification is sent to destinee |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1092 assert fake_send.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1093 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
|
1094 assert sent_elt.name == "message" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1095 assert sent_elt["from"] == client.jid.full() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1096 assert sent_elt["to"] == TEST_JID.full() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1097 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
|
1098 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
|
1099 retract_elt = apply_to_elt.retract |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1100 assert retract_elt is not None |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1101 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
|
1102 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1103 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1104 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
|
1105 """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
|
1106 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
|
1107 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
|
1108 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
|
1109 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1110 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
|
1111 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
|
1112 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
|
1113 # VCard4 node |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1114 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
|
1115 None, |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1116 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1117 None, |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1118 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1119 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
|
1120 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
|
1121 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
|
1122 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
|
1123 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
|
1124 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1125 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1126 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
|
1127 """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
|
1128 # 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
|
1129 # 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
|
1130 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
|
1131 getIdentity.return_value = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1132 "nicknames": ["nick1", "nick2"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1133 "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
|
1134 } |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1135 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
|
1136 **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
|
1137 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1138 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1139 # 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
|
1140 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
|
1141 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
|
1142 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1143 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1144 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
|
1145 """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
|
1146 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
|
1147 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
|
1148 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
|
1149 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1150 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
|
1151 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1152 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1153 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1154 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1155 "content": "<p>test mention by direct addressing</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1156 "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
|
1157 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1158 "to": [ap_const.NS_AP_PUBLIC, xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1159 "type": "Note", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1160 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1161 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
|
1162 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
|
1163 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1164 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
|
1165 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1166 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
|
1167 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
|
1168 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
|
1169 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1170 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1171 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
|
1172 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
|
1173 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1174 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
|
1175 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
|
1176 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1177 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
|
1178 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1179 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
|
1180 ) |
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 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
|
1183 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1184 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1185 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
|
1186 """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
|
1187 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
|
1188 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
|
1189 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
|
1190 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1191 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
|
1192 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1193 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1194 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1195 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1196 "content": "<p>test mention by tag</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1197 "id": f"{TEST_AP_ACTOR_ID}/statuses/tag_123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1198 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1199 "to": [ap_const.NS_AP_PUBLIC], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1200 "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
|
1201 "type": "Note", |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1202 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1203 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
|
1204 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
|
1205 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1206 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
|
1207 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1208 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
|
1209 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
|
1210 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
|
1211 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1212 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1213 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
|
1214 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
|
1215 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1216 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
|
1217 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
|
1218 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1219 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
|
1220 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1221 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
|
1222 ) |
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 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
|
1225 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1226 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1227 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
|
1228 """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
|
1229 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
|
1230 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
|
1231 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
|
1232 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1233 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1234 "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
|
1235 "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
|
1236 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1237 "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
|
1238 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1239 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
|
1240 ap_gateway.client, mb_data, public=True |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1241 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1242 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1243 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
|
1244 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
|
1245 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1246 "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
|
1247 "href": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1248 "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
|
1249 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1250 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
|
1251 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1252 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1253 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
|
1254 """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
|
1255 # 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
|
1256 # 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
|
1257 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
|
1258 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
|
1259 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
|
1260 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1261 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1262 "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
|
1263 "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
|
1264 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1265 "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
|
1266 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1267 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
|
1268 ap_gateway.client, mb_data, public=False |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1269 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1270 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1271 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
|
1272 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
|
1273 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
|
1274 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1275 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1276 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
|
1277 """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
|
1278 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
|
1279 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
|
1280 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
|
1281 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1282 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
|
1283 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
|
1284 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
|
1285 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1286 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
|
1287 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1288 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
|
1289 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1290 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1291 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
|
1292 "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
|
1293 "type_": "mention", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1294 "anchor": anchor, |
3837
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 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
|
1297 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1298 # 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
|
1299 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1300 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
|
1301 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
|
1302 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1303 # "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
|
1304 # 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
|
1305 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
|
1306 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
|
1307 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1308 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
|
1309 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
|
1310 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1311 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
|
1312 # 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
|
1313 # 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
|
1314 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
|
1315 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
|
1316 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
|
1317 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
|
1318 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1319 await ap_gateway._onReferenceReceived( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1320 ap_gateway.client, message_elt, ref_data |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1321 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1322 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1323 # 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
|
1324 # 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
|
1325 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
|
1326 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
|
1327 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
|
1328 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
|
1329 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1330 "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
|
1331 "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
|
1332 # 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
|
1333 # item with XMPP |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1334 "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
|
1335 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1336 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
|
1337 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1338 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1339 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
|
1340 """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
|
1341 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
|
1342 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
|
1343 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
|
1344 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1345 # 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
|
1346 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
|
1347 # repeated item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1348 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
|
1349 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
|
1350 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1351 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
|
1352 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1353 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
|
1354 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1355 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1356 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1357 <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
|
1358 <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
|
1359 <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
|
1360 <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
|
1361 <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
|
1362 <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
|
1363 </div> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1364 </title> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1365 <author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1366 <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
|
1367 <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
|
1368 </author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1369 <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
|
1370 <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
|
1371 <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
|
1372 <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
|
1373 </entry> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1374 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1375 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1376 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1377 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
|
1378 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1379 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
|
1380 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
|
1381 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
|
1382 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
|
1383 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
|
1384 TEST_JID, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1385 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1386 [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
|
1387 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1388 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1389 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
|
1390 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
|
1391 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
|
1392 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
|
1393 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
|
1394 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
|
1395 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
|
1396 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1397 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1398 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
|
1399 """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
|
1400 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
|
1401 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
|
1402 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
|
1403 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1404 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
|
1405 # announced item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1406 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
|
1407 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
|
1408 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
|
1409 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1410 announce = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1411 "@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
|
1412 "type": "Announce", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1413 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1414 "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
|
1415 "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
|
1416 "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
|
1417 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1418 "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
|
1419 } |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1420 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
|
1421 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
|
1422 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
|
1423 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
|
1424 with patch.object( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1425 ap_gateway.host.memory.storage, "cachePubsubItems" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1426 ) 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
|
1427 await ap_gateway.server.resource.handleAnnounceActivity( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1428 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
|
1429 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1430 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1431 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
|
1432 # 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
|
1433 __, __, __, [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
|
1434 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
|
1435 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
|
1436 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
|
1437 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
|
1438 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
|
1439 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1440 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
|
1441 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1442 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
|
1443 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1444 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
|
1445 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1446 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1447 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
|
1448 """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
|
1449 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
|
1450 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
|
1451 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
|
1452 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1453 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
|
1454 # noticed item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1455 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
|
1456 attachment_node = ap_gateway._pa.getAttachmentNodeName( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1457 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
|
1458 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1459 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1460 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1461 <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
|
1462 <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
|
1463 <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
|
1464 </attachments> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1465 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1466 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1467 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1468 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
|
1469 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1470 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
|
1471 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1472 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1473 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
|
1474 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1475 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
|
1476 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1477 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
|
1478 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
|
1479 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
|
1480 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
|
1481 assert doc["type"] == "Like" |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1482 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
|
1483 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
|
1484 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1485 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1486 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
|
1487 """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
|
1488 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
|
1489 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
|
1490 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
|
1491 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1492 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
|
1493 # liked item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1494 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
|
1495 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
|
1496 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
|
1497 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1498 like = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1499 "@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
|
1500 "type": "Like", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1501 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1502 "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
|
1503 "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
|
1504 "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
|
1505 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1506 "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
|
1507 } |
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.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
|
1509 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
|
1510 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
|
1511 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
|
1512 **self.ap_request_params( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1513 ap_gateway, "inbox", doc=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
|
1514 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1515 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1516 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1517 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
|
1518 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
|
1519 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
|
1520 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
|
1521 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
|
1522 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
|
1523 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1524 [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
|
1525 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
|
1526 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
|
1527 assert parsed_item["noticed"]["noticed"] == True |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1528 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1529 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1530 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
|
1531 """Pubsub-attachments ``reactions`` is converted to AP EmojiReact activity""" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1532 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
|
1533 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
|
1534 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1535 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1536 recipient_jid = ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1537 # noticed item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1538 ap_item = TEST_AP_ITEMS[0] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1539 ap_item_url = xmpp_uri.buildXMPPUri( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1540 "pubsub", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1541 path=recipient_jid.full(), |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1542 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1543 item=ap_item["id"], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1544 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1545 attachment_node = ap_gateway._pa.getAttachmentNodeName( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1546 recipient_jid, ap_gateway._m.namespace, ap_item["id"] |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1547 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1548 reactions = ["🦁", "🥜", "🎻"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1549 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1550 f""" |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1551 <item id="{TEST_JID.userhost()}" published="{TEST_JID.userhostJID()}"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1552 <attachments xmlns="urn:xmpp:pubsub-attachments:1"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1553 <reactions timestamp="2022-08-31T12:17:23Z"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1554 <reaction>{reactions[0]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1555 <reaction>{reactions[1]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1556 <reaction>{reactions[2]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1557 </reactions> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1558 </attachments> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1559 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1560 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1561 ) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1562 item_elt.uri = pubsub.NS_PUBSUB_EVENT |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1563 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1564 TEST_JID, recipient_jid, attachment_node, [item_elt], {} |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1565 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1566 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1567 with patch.object(ap_gateway, "signAndPost") as signAndPost: |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1568 signAndPost.return_value.code = 202 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1569 await ap_gateway._itemsReceived(ap_gateway.client, items_event) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1570 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1571 assert signAndPost.call_count == 3 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1572 for idx, call_args in enumerate(signAndPost.call_args_list): |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1573 url, actor_id, doc = call_args.args |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1574 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1575 assert actor_id == ap_gateway.buildAPURL( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1576 ap_const.TYPE_ACTOR, TEST_JID.userhost() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1577 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1578 assert doc["type"] == "EmojiReact" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1579 assert ap_const.NS_AP_PUBLIC in doc["cc"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1580 assert doc["object"] == ap_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1581 # 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
|
1582 # 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
|
1583 # checked. |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1584 assert doc["content"] in reactions |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1585 reactions.remove(doc["content"]) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1586 assert len(reactions) == 0 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1587 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1588 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1589 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
|
1590 """AP EmojiReact activity is converted to ``reactions`` attachment""" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1591 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
|
1592 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
|
1593 monkeypatch.setattr(ap_gateway, "apGet", mock_ap_get) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1594 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1595 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
|
1596 # item on which reaction is attached |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1597 xmpp_item = XMPP_ITEMS[0] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1598 xmpp_item_url = ap_gateway.buildAPURL( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1599 ap_const.TYPE_ITEM, TEST_JID.userhost(), xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1600 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1601 like = { |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1602 "@context": "https://www.w3.org/ns/activitystreams", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1603 "type": "EmojiReact", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1604 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1605 "cc": [xmpp_actor_id, TEST_USER_DATA["followers"]], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1606 "id": "https://example.org/like/123", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1607 "object": xmpp_item_url, |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1608 "content": "🐅", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1609 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1610 "to": [ap_const.NS_AP_PUBLIC], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1611 } |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1612 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
|
1613 getItems.return_value = ([], {}) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1614 with patch.object(ap_gateway._p, "sendItems") as sendItems: |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1615 await ap_gateway.server.resource.APInboxRequest( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1616 **self.ap_request_params( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1617 ap_gateway, "inbox", doc=like, signing_actor=TEST_AP_ACTOR_ID |
3891
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 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1620 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1621 assert sendItems.called |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1622 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
|
1623 assert si_client.jid == ap_gateway.getLocalJIDFromAccount(TEST_AP_ACCOUNT) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1624 assert si_service == TEST_JID |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1625 assert si_node == ap_gateway._pa.getAttachmentNodeName( |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1626 TEST_JID, ap_gateway._m.namespace, xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1627 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1628 [parsed_item] = ap_gateway._pa.items2attachmentData(si_client, [si_item]) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1629 assert parsed_item["from"] == si_client.jid.full() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1630 assert "reactions" in parsed_item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1631 assert parsed_item["reactions"]["reactions"] == ["🐅"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1632 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1633 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1634 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
|
1635 """XMPP events are converted to AP events""" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1636 # we use internal event data |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1637 event_data = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1638 "id": "event_123", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1639 "name": {"": "test event"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1640 "start": 1664222400.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1641 "end": 1664226000.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1642 "head-picture": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1643 "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
|
1644 }, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1645 "descriptions": [{"description": "meeting for test", "type": "text"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1646 "categories": [{"term": "test", "wikidata_id": "Q1003030"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1647 "locations": [{"description": "somewhere in the world"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1648 "rsvp": [ |
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 "fields": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1651 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1652 "type": "list-single", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1653 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1654 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1655 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1656 {"value": "maybe", "label": "maybe"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1657 {"value": "yes", "label": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1658 {"value": "no", "label": "no"}, |
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 } |
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 "namespace": "urn:xmpp:events:rsvp:0", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1663 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1664 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1665 "extra": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1666 "status": "confirmed", |
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 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1669 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1670 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
|
1671 ap_object = ap_item["object"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1672 actor_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1673 "https://test.example/_ap/actor/" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1674 "___urn.3Axmpp.3Aevents.3A0---some_user%40test.example" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1675 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1676 event_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1677 "https://test.example/_ap/item/" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1678 "___urn.3Axmpp.3Aevents.3A0---some_user%40test.example/event_123" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1679 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1680 assert ap_object["name"] == "test event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1681 assert ap_object["actor"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1682 assert ap_object["attributedTo"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1683 assert ap_object["type"] == "Event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1684 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
|
1685 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
|
1686 assert ap_object["id"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1687 assert ap_object["url"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1688 assert ap_object["attachment"] == [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1689 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1690 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1691 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1692 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1693 "url": "https://example.org/head_picture.jpg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1694 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1695 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1696 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
|
1697 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
|
1698 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
|
1699 assert ap_object["ical:status"] == "CONFIRMED" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1700 assert ap_item["type"] == "Create" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1701 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1702 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1703 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
|
1704 """AP events are converted to XMPP events""" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1705 test_actor = "___urn.3Axmpp.3Aevents.3A0---some_user%40test.example" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1706 ap_object = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1707 "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
|
1708 "attachment": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1709 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1710 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1711 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1712 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1713 "url": "https://example.org/head_picture.jpg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1714 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1715 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1716 "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
|
1717 "content": "<p>meeting for test</p>", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1718 "endTime": "2022-09-26T21:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1719 "ical:status": "CONFIRMED", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1720 "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
|
1721 "location": {"name": "somewhere in the world"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1722 "name": "test event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1723 "startTime": "2022-09-26T20:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1724 "tag": [{"name": "#test", "type": "Hashtag"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1725 "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
|
1726 "type": "Event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1727 "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
|
1728 } |
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 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
|
1731 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1732 assert event_data["id"] == ap_object["id"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1733 assert event_data["name"] == {"": "test event"} |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1734 assert event_data["start"] == 1664222400 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1735 assert event_data["end"] == 1664226000 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1736 assert event_data["head-picture"] == { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1737 "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
|
1738 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1739 assert event_data["descriptions"] == [{ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1740 "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
|
1741 }] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1742 assert event_data["categories"] == [{"term": "test"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1743 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
|
1744 assert event_data["rsvp"] == [ |
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 "fields": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1747 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1748 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1749 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1750 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1751 {"label": "yes", "value": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1752 {"label": "no", "value": "no"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1753 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1754 "required": True, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1755 "type": "list-single", |
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 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1759 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1760 assert event_data["extra"] == {"status": "confirmed"} |