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