Mercurial > libervia-backend
annotate tests/unit/test_ap-gateway.py @ 4351:6a0a081485b8
plugin autocrypt: Autocrypt protocol implementation:
Implementation of autocrypt: `autocrypt` header is checked, and if present and no public
key is known for the peer, the key is imported.
`autocrypt` header is also added to outgoing message (only if an email gateway is
detected).
For the moment, the JID is use as identifier, but the real email used by gateway should be
used in the future.
rel 456
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 28 Feb 2025 09:23:35 +0100 |
parents | 2246eeeccc74 |
children |
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 |
4321 | 39 from libervia.backend.core.xmpp import SatXMPPComponent |
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
40 from libervia.backend.memory.sqla_mapping import SubscriptionState |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
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 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
343 async def mock_treq_get(url): |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
344 return deepcopy(AP_REQUESTS[url]) |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
345 |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
346 |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
347 async def mock_ap_get(url, requestor_actor_id): |
3733 | 348 return deepcopy(AP_REQUESTS[url]) |
349 | |
350 | |
351 async def mock_treq_json(data): | |
352 return dict(data) | |
353 | |
354 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
355 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
|
356 """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
|
357 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
358 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
|
359 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
|
360 returned |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
361 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
|
362 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
|
363 """ |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
364 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
|
365 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
|
366 raise StanzaError("item-not-found") |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
367 ret_items = kwargs.pop("ret_items", XMPP_ITEMS) |
3733 | 368 rsm_resp = rsm.RSMResponse( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
369 first=ret_items[0]["id"], last=ret_items[-1]["id"], index=0, count=len(ret_items) |
3733 | 370 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
371 return ret_items, {"rsm": rsm_resp.toDict(), "complete": True} |
3733 | 372 |
373 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
374 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
|
375 """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
|
376 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
377 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
|
378 """ |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
379 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
|
380 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
|
381 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
|
382 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
383 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
384 def mock_client(jid): |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
385 client = MagicMock() |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
386 client.jid = jid |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
387 client.host = "test.example" |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
388 client._ap_storage.get = AsyncMock() |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
389 client._ap_storage.aset = AsyncMock() |
4321 | 390 client.is_local = lambda jid_: SatXMPPComponent.is_local(client, jid_) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
391 return client |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
392 |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
393 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
394 def get_virtual_client(jid): |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
395 return mock_client(jid) |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
396 |
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
397 |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
398 class FakeTReqPostResponse: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
399 code = 202 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
400 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
401 |
3733 | 402 @pytest.fixture(scope="session") |
403 def ap_gateway(host): | |
404 gateway = plugin_comp_ap_gateway.APGateway(host) | |
405 gateway.initialised = True | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
406 gateway.is_pubsub = AsyncMock() |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
407 gateway.is_pubsub.return_value = False |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
408 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
|
409 client.get_virtual_client = get_virtual_client |
3733 | 410 gateway.client = client |
411 gateway.local_only = True | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
412 gateway.public_url = PUBLIC_URL |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
413 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
|
414 gateway.auto_mentions = True |
3733 | 415 gateway.base_ap_url = parse.urljoin( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
416 f"https://{gateway.public_url}", f"{gateway.ap_path}/" |
3733 | 417 ) |
418 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
|
419 gateway.public_key_pem = None |
3733 | 420 return gateway |
421 | |
422 | |
423 class TestActivityPubGateway: | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
424 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
|
425 return next( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
426 t |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
427 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
|
428 if t.getAttribute("type") == "xhtml" |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
429 ) |
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
430 |
3733 | 431 @ed |
432 async def test_jid_and_node_convert_to_ap_handle(self, ap_gateway): | |
433 """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
|
434 get_account = ap_gateway.get_ap_account_from_jid_and_node |
3733 | 435 |
436 # local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
437 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
438 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
|
439 == "simple@test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
440 ) |
3733 | 441 |
442 # non local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
443 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
444 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
|
445 == "___simple.40example.2eorg@ap.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
446 ) |
3733 | 447 |
448 # local jid with non microblog node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
449 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
450 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
|
451 == "some_other_node---simple@test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
452 ) |
3733 | 453 |
454 # local pubsub node | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
455 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
|
456 is_pubsub.return_value = True |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
457 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
458 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
|
459 == "some_node@pubsub.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
460 ) |
3733 | 461 |
462 # non local pubsub node | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
463 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
|
464 is_pubsub.return_value = True |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
465 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
466 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
|
467 == "___some_node.40pubsub.2eexample.2eorg@ap.test.example" |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
468 ) |
3733 | 469 |
470 @ed | |
471 async def test_ap_handle_convert_to_jid_and_node(self, ap_gateway, monkeypatch): | |
472 """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
|
473 get_jid_node = ap_gateway.get_jid_and_node |
3733 | 474 |
475 # 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
|
476 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
|
477 is_pubsub.return_value = False |
3733 | 478 |
479 # simple local jid | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
480 assert await get_jid_node("toto@test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
481 jid.JID("toto@test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
482 None, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
483 ) |
3733 | 484 |
485 # simple external jid | |
486 | |
487 ## with "local_only" set, it should raise an exception | |
488 with pytest.raises(exceptions.PermissionError): | |
489 await get_jid_node("toto@example.org") | |
490 | |
491 ## with "local_only" unset, it should work | |
492 with monkeypatch.context() as m: | |
493 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
|
494 assert await get_jid_node("toto@example.org") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
495 jid.JID("toto@example.org"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
496 None, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
497 ) |
3733 | 498 |
499 # explicit node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
500 assert await get_jid_node("tata---toto@test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
501 jid.JID("toto@test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
502 "tata", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
503 ) |
3733 | 504 |
505 # 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
|
506 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
|
507 is_pubsub.return_value = True |
3733 | 508 |
509 # simple local node | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
510 assert await get_jid_node("toto@pubsub.test.example") == ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
511 jid.JID("pubsub.test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
512 "toto", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
513 ) |
3733 | 514 |
515 # encoded local node | |
516 assert await get_jid_node( | |
517 "___urn.3axmpp.3amicroblog.3a0@pubsub.test.example" | |
518 ) == (jid.JID("pubsub.test.example"), "urn:xmpp:microblog:0") | |
519 | |
520 @ed | |
521 async def test_ap_to_pubsub_conversion(self, ap_gateway, monkeypatch): | |
522 """AP requests are converted to pubsub""" | |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
523 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3733 | 524 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
|
525 monkeypatch.setattr(ap_gateway, "ap_get", mock_ap_get) |
3733 | 526 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
527 actor_data = await ap_gateway.get_ap_actor_data_from_account( |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
528 TEST_AP_ACTOR_ID, TEST_AP_ACCOUNT |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
529 ) |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
530 outbox = await ap_gateway.ap_get_object(TEST_AP_ACTOR_ID, actor_data, "outbox") |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
531 items, rsm_resp = await ap_gateway.get_ap_items(TEST_AP_ACTOR_ID, outbox, 2) |
3733 | 532 |
533 assert rsm_resp.count == 4 | |
534 assert rsm_resp.index == 0 | |
535 assert rsm_resp.first == "https://example.org/users/test_user/statuses/4" | |
536 assert rsm_resp.last == "https://example.org/users/test_user/statuses/3" | |
537 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
538 title_xhtml = self.get_title_xhtml(items[0]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
539 assert title_xhtml.toXml() == ( |
3733 | 540 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
541 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 4</p></div>" | |
542 "</title>" | |
543 ) | |
544 author_uri = str( | |
545 [e for e in items[0].entry.author.elements() if e.name == "uri"][0] | |
546 ) | |
547 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
548 assert str(items[0].entry.published) == "2021-12-16T17:25:03Z" | |
549 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
550 title_xhtml = self.get_title_xhtml(items[1]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
551 assert title_xhtml.toXml() == ( |
3733 | 552 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
553 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 3</p></div>" | |
554 "</title>" | |
555 ) | |
556 author_uri = str( | |
557 [e for e in items[1].entry.author.elements() if e.name == "uri"][0] | |
558 ) | |
559 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
560 assert str(items[1].entry.published) == "2021-12-16T17:26:03Z" | |
561 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
562 items, rsm_resp = await ap_gateway.get_ap_items( |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
563 TEST_AP_ACTOR_ID, |
3735
04ecc8eeb81a
tests (ap-gateway): fix use of outbox URL to get items
Goffi <goffi@goffi.org>
parents:
3733
diff
changeset
|
564 outbox, |
3733 | 565 max_items=2, |
566 after_id="https://example.org/users/test_user/statuses/3", | |
567 ) | |
568 | |
569 assert rsm_resp.count == 4 | |
570 assert rsm_resp.index == 2 | |
571 assert rsm_resp.first == "https://example.org/users/test_user/statuses/2" | |
572 assert rsm_resp.last == "https://example.org/users/test_user/statuses/1" | |
573 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
574 title_xhtml = self.get_title_xhtml(items[0]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
575 assert title_xhtml.toXml() == ( |
3733 | 576 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
577 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 2</p></div>" | |
578 "</title>" | |
579 ) | |
580 author_uri = str( | |
581 [e for e in items[0].entry.author.elements() if e.name == "uri"][0] | |
582 ) | |
583 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
584 assert str(items[0].entry.published) == "2021-12-16T17:27:03Z" | |
585 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
586 title_xhtml = self.get_title_xhtml(items[1]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
587 assert title_xhtml.toXml() == ( |
3733 | 588 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
589 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 1</p></div>" | |
590 "</title>" | |
591 ) | |
592 author_uri = str( | |
593 [e for e in items[1].entry.author.elements() if e.name == "uri"][0] | |
594 ) | |
595 assert author_uri == "xmpp:test_user\\40example.org@ap.test.example" | |
596 assert str(items[1].entry.published) == "2021-12-16T17:28:03Z" | |
597 | |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
598 items, rsm_resp = await ap_gateway.get_ap_items( |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
599 TEST_AP_ACTOR_ID, outbox, max_items=1, start_index=2 |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
600 ) |
3733 | 601 |
602 assert rsm_resp.count == 4 | |
603 assert rsm_resp.index == 2 | |
604 assert rsm_resp.first == "https://example.org/users/test_user/statuses/2" | |
605 assert rsm_resp.last == "https://example.org/users/test_user/statuses/2" | |
606 assert len(items) == 1 | |
607 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
608 title_xhtml = self.get_title_xhtml(items[0]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
609 assert title_xhtml.toXml() == ( |
3733 | 610 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
611 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 2</p></div>" | |
612 "</title>" | |
613 ) | |
614 assert str(items[0].entry.published) == "2021-12-16T17:27:03Z" | |
615 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
616 items, rsm_resp = await ap_gateway.get_ap_items( |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
617 TEST_AP_ACTOR_ID, outbox, max_items=3, chronological_pagination=False |
3733 | 618 ) |
619 assert rsm_resp.count == 4 | |
620 assert rsm_resp.index == 1 | |
621 assert rsm_resp.first == "https://example.org/users/test_user/statuses/3" | |
622 assert rsm_resp.last == "https://example.org/users/test_user/statuses/1" | |
623 assert len(items) == 3 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
624 title_xhtml = self.get_title_xhtml(items[0]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
625 assert title_xhtml.toXml() == ( |
3733 | 626 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
627 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 3</p></div>" | |
628 "</title>" | |
629 ) | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
630 title_xhtml = self.get_title_xhtml(items[2]) |
3783
fedbf7aade11
tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents:
3770
diff
changeset
|
631 assert title_xhtml.toXml() == ( |
3733 | 632 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>" |
633 "<div xmlns='http://www.w3.org/1999/xhtml'><p>test message 1</p></div>" | |
634 "</title>" | |
635 ) | |
636 | |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
637 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
|
638 self, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
639 ap_gateway, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
640 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
|
641 url: Optional[str] = None, |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
642 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
|
643 query_data: Optional[dict] = None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
644 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
|
645 ) -> Dict[str, Any]: |
3733 | 646 """Generate parameters for HTTPAPGServer's AP*Request |
647 | |
648 @param type_: one of the AP query type (e.g. "outbox") | |
649 @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
|
650 @param data: object used as body of the request |
3733 | 651 @param query_data: query data as returned by parse.parse_qs |
652 @return dict with kw params to use | |
653 """ | |
654 assert type_ and url is None or url and type_ is None | |
655 if type_ is not None: | |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
656 path = f"_ap/{type_}/some_user@test.example" |
3733 | 657 else: |
658 url_parsed = parse.urlparse(url) | |
659 path = url_parsed.path.lstrip("/") | |
660 type_ = path.split("/")[1] | |
661 if query_data is None: | |
662 query_data = parse.parse_qs(url_parsed.query) | |
663 | |
664 if query_data: | |
665 uri = f"{path}?{parse.urlencode(query_data, doseq=True)}" | |
666 else: | |
667 uri = path | |
668 | |
669 test_jid = jid.JID("some_user@test.example") | |
670 request = Request(MagicMock()) | |
671 request.path = path.encode() | |
672 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
|
673 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
674 ap_url = parse.urljoin(f"https://{ap_gateway.public_url}", path) |
3733 | 675 kwargs = { |
676 "request": request, | |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
677 "data": data, |
3733 | 678 "account_jid": test_jid, |
679 "node": None, | |
680 "ap_account": test_jid.full(), | |
681 "ap_url": ap_url, | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
682 "signing_actor": signing_actor, |
3733 | 683 } |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
684 if type_ not in (ap_const.TYPE_ACTOR, "outbox", "following", "followers"): |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
685 kwargs["requestor_actor_id"] = TEST_AP_ACTOR_ID |
3733 | 686 if type_ == "outbox" and query_data: |
687 kwargs["query_data"] = query_data | |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
688 # 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
|
689 del kwargs["signing_actor"] |
3733 | 690 return kwargs |
691 | |
692 @ed | |
693 async def test_pubsub_to_ap_conversion(self, ap_gateway, monkeypatch): | |
694 """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
|
695 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
|
696 outbox = await ap_gateway.server.resource.ap_outbox_request( |
3733 | 697 **self.ap_request_params(ap_gateway, "outbox") |
698 ) | |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
699 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
|
700 assert outbox["id"] == "https://test.example/_ap/outbox/some_user@test.example" |
3733 | 701 assert outbox["totalItems"] == len(XMPP_ITEMS) |
702 assert outbox["type"] == "OrderedCollection" | |
703 assert outbox["first"] | |
704 assert outbox["last"] | |
705 | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
706 first_page = await ap_gateway.server.resource.ap_outbox_page_request( |
3733 | 707 **self.ap_request_params(ap_gateway, url=outbox["first"]) |
708 ) | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
709 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
|
710 assert ( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
711 first_page["id"] |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
712 == "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
|
713 ) |
3733 | 714 assert first_page["type"] == "OrderedCollectionPage" |
715 assert first_page["partOf"] == outbox["id"] | |
716 assert len(first_page["orderedItems"]) == len(XMPP_ITEMS) | |
717 first_item = first_page["orderedItems"][0] | |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
718 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
|
719 assert ( |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
720 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
|
721 ) |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
722 assert ( |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
723 first_item["actor"] == "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
|
724 ) |
3733 | 725 assert first_item["type"] == "Create" |
726 first_item_obj = first_item["object"] | |
727 assert first_item_obj["id"] == first_item["id"] | |
728 assert first_item_obj["type"] == "Note" | |
729 assert first_item_obj["published"] == "2022-01-28T16:02:19Z" | |
730 assert first_item_obj["attributedTo"] == first_item["actor"] | |
731 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
|
732 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
|
733 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
734 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
735 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
|
736 """AP following items are converted to Public Pubsub Subscription subscriptions""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
737 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
738 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
|
739 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
|
740 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
741 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
|
742 jid.JID("toto@example.org"), |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
743 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
|
744 ap_gateway._pps.subscriptions_node, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
745 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
746 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
747 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
748 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
749 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
750 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
751 ("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
|
752 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
753 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
|
754 assert subscription_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
755 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
|
756 assert subscription_elt["service"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
757 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
758 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
759 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
|
760 """AP followers items are converted to Public Pubsub Subscription subscribers""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
761 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
762 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
|
763 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
|
764 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
765 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
|
766 jid.JID("toto@example.org"), |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
767 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
|
768 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
|
769 None, |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
770 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
771 None, |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
772 ) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
773 assert len(items) == 2 |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
774 for idx, entity in enumerate( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
775 ("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
|
776 ): |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
777 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
|
778 assert subscriber_elt is not None |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
779 assert subscriber_elt["jid"] == entity |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
780 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
781 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
782 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
|
783 """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
|
784 subscriptions = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
785 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
786 id="subscription_1", |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
787 payload=ap_gateway._pps.build_subscription_elt( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
788 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
|
789 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
790 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
791 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
792 id="subscription_2", |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
793 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
|
794 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
795 jid.JID("ext_user\\40example.org@ap.test.example"), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
796 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
797 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
798 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
799 monkeypatch.setattr( |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
800 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
|
801 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
802 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
|
803 **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
|
804 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
805 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
|
806 assert ( |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
807 following["id"] == "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
|
808 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
809 assert following["totalItems"] == len(subscriptions) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
810 assert following["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
811 assert following.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
812 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
813 first_page = following["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
814 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
815 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
|
816 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
817 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
|
818 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
819 @ed |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
820 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
|
821 """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
|
822 subscribers = [ |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
823 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
824 id="subscriber_1", |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
825 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
|
826 jid.JID("local_user@test.example") |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
827 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
828 ), |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
829 pubsub.Item( |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
830 id="subscriber_2", |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
831 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
|
832 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
|
833 ), |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
834 ), |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
835 ] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
836 monkeypatch.setattr( |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
837 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
|
838 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
839 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
|
840 **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
|
841 ) |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
842 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
|
843 assert ( |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
844 followers["id"] == "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
|
845 ) |
3770
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
846 assert followers["totalItems"] == len(subscribers) |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
847 assert followers["type"] == "OrderedCollection" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
848 assert followers.get("first") |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
849 |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
850 first_page = followers["first"] |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
851 assert first_page["type"] == "OrderedCollectionPage" |
f31113777881
tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents:
3735
diff
changeset
|
852 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
|
853 items = first_page["orderedItems"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
854 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
|
855 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
856 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
857 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
|
858 """XMPP message are sent as AP direct message""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
859 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
860 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
|
861 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
|
862 mess_data = { |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
863 "from": TEST_JID, |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
864 "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
|
865 "type": "chat", |
39fc2e1b3793
tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents:
3785
diff
changeset
|
866 "message": {"": "This is a test message."}, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
867 "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
|
868 } |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
869 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
870 await ap_gateway.on_message(ap_gateway.client, mess_data) |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
871 url, actor_id, doc = ap_post.call_args[0] |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
872 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
|
873 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
|
874 obj = doc["object"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
875 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
|
876 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
|
877 assert obj["type"] == "Note" |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
878 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
|
879 assert obj["attributedTo"] == ( |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
880 "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
|
881 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
882 # 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
|
883 # ("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
|
884 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
|
885 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
|
886 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
|
887 assert field not in doc |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
888 assert field not in obj |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
889 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
890 @ed |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
891 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
|
892 """AP direct message are sent as XMPP message (not Pubsub)""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
893 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
894 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
|
895 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
|
896 # 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
|
897 monkeypatch.setattr(defer, "DeferredList", AsyncMock()) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
898 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
899 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
|
900 direct_ap_message = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
901 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
902 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
903 "content": "<p>test direct message</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
904 "contentMap": {"en": "<p>test direct message</p>"}, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
905 "id": f"{TEST_AP_ACTOR_ID}/statuses/123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
906 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
907 "to": [xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
908 "type": "Note", |
3785
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
909 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
910 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
|
911 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
|
912 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
913 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
|
914 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
|
915 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
|
916 ) |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
917 |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
918 # 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
|
919 # 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
|
920 assert sendMessage.called |
0b54be42d0aa
test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents:
3783
diff
changeset
|
921 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
|
922 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
|
923 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
924 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
925 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
|
926 """Pubsub retract requests are converted to AP delete activity""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
927 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
928 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
|
929 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
|
930 retract_id = "retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
931 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
|
932 retract_elt["id"] = retract_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
933 items_event = pubsub.ItemsEvent( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
934 sender=TEST_JID, |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
935 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
|
936 nodeIdentifier=ap_gateway._m.namespace, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
937 items=[retract_elt], |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
938 headers={}, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
939 ) |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
940 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
941 ap_post.return_value = FakeTReqPostResponse() |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
942 # 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
|
943 await ap_gateway._items_received(ap_gateway.client, items_event) |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
944 url, actor_id, doc = ap_post.call_args[0] |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
945 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
|
946 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
|
947 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
|
948 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
949 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
950 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
951 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
952 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
|
953 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
|
954 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
955 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
956 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
957 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
|
958 """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
|
959 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
|
960 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
|
961 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
962 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
963 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
964 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
965 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
966 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
967 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
968 "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
|
969 "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
|
970 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
971 with patch.multiple( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
972 ap_gateway.host.memory.storage, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
973 get=DEFAULT, |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
974 get_pubsub_node=DEFAULT, |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
975 delete_pubsub_items=DEFAULT, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
976 ) as mock_objs: |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
977 mock_objs["get"].return_value = None |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
978 cached_node = MagicMock() |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
979 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
|
980 subscription = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
981 subscription.state = SubscriptionState.SUBSCRIBED |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
982 subscription.subscriber = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
983 cached_node.subscriptions = [subscription] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
984 with patch.object( |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
985 ap_gateway.pubsub_service, "notifyRetract" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
986 ) as notifyRetract: |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
987 # 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
|
988 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
|
989 client=client, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
990 destinee=None, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
991 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
992 item=ap_item, |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
993 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
994 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
995 # item is deleted from database |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
996 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
|
997 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
|
998 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
|
999 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1000 # retraction notification is sent to subscribers |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1001 assert notifyRetract.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1002 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
|
1003 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
|
1004 notifications = notifyRetract.call_args.args[2] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1005 assert len(notifications) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1006 subscriber, __, item_elts = notifications[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1007 assert subscriber == TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1008 assert len(item_elts) == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1009 item_elt = item_elts[0] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1010 assert isinstance(item_elt, domish.Element) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1011 assert item_elt.name == "item" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1012 assert item_elt["id"] == ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1013 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1014 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1015 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
|
1016 """Message retract requests are converted to AP delete activity""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1017 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1018 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
|
1019 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
|
1020 # 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
|
1021 origin_id = "mess_retract_123" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1022 |
4213 | 1023 # we call send_retract 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
|
1024 fake_client = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1025 fake_client.jid = TEST_JID |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1026 dest_jid = ap_gateway.get_local_jid_from_account(TEST_AP_ACCOUNT) |
4213 | 1027 fake_history = MagicMock() |
1028 fake_history.type = C.MESS_TYPE_CHAT | |
1029 ap_gateway._r.send_retract(fake_client, dest_jid, origin_id, fake_history) | |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1030 # 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
|
1031 message_retract_elt = fake_client.send.call_args.args[0] |
4213 | 1032 retract_elt = next(message_retract_elt.elements(NS_MESSAGE_RETRACT, "retract")) |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1033 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1034 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1035 ap_post.return_value = FakeTReqPostResponse() |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1036 fake_fastened_elts = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1037 fake_fastened_elts.id = origin_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1038 # 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
|
1039 # we generated above |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1040 await ap_gateway._on_message_retract( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1041 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
|
1042 ) |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1043 url, actor_id, doc = ap_post.call_args[0] |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1044 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1045 # the AP delete activity must have been sent through ap_post |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1046 # we check its values |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1047 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
|
1048 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
|
1049 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
|
1050 assert actor_id == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1051 assert doc["type"] == "Delete" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1052 assert doc["actor"] == jid_actor_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1053 obj = doc["object"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1054 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
|
1055 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
|
1056 assert obj["id"] == url_item_id |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1057 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1058 @ed |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1059 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
|
1060 """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
|
1061 # 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
|
1062 # 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
|
1063 # by ``test_ap_delete_to_pubsub_retract``) |
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 # 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
|
1066 retract_db_history = AsyncMock() |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1067 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
|
1068 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1069 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
|
1070 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
|
1071 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1072 fake_send = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1073 monkeypatch.setattr(client, "send", fake_send) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1074 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1075 ap_item = { |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1076 "@context": "https://www.w3.org/ns/activitystreams", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1077 "actor": TEST_AP_ACTOR_ID, |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1078 "id": "https://test.example/retract_123", |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1079 "type": "Delete", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1080 "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
|
1081 "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
|
1082 } |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1083 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
|
1084 fake_history = MagicMock() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1085 fake_history.source_jid = client.jid |
4213 | 1086 fake_history.dest = str(TEST_JID) |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1087 fake_history.dest_jid = TEST_JID |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1088 fake_history.origin_id = ap_item["id"] |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1089 storage_get.return_value = fake_history |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1090 # 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
|
1091 await ap_gateway.new_ap_delete_item( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1092 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
|
1093 ) |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1094 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1095 # item is deleted from database |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1096 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
|
1097 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
|
1098 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
|
1099 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1100 # retraction notification is sent to destinee |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1101 assert fake_send.call_count == 1 |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1102 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
|
1103 assert sent_elt.name == "message" |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1104 assert sent_elt["from"] == client.jid.full() |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1105 assert sent_elt["to"] == TEST_JID.full() |
4213 | 1106 retract_elt = next(sent_elt.elements(NS_MESSAGE_RETRACT, "retract")) |
1107 assert retract_elt["id"] == ap_item["id"] | |
3809
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1108 assert retract_elt is not None |
04b57c0b2278
tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents:
3808
diff
changeset
|
1109 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
|
1110 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1111 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1112 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
|
1113 """AP actor metadata are converted to XMPP/vCard4""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1114 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1115 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
|
1116 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
|
1117 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1118 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
|
1119 jid.JID("toto@example.org"), |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1120 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
|
1121 # VCard4 node |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1122 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
|
1123 None, |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1124 None, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1125 None, |
3826
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1126 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1127 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
|
1128 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
|
1129 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
|
1130 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
|
1131 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
|
1132 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1133 @ed |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1134 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
|
1135 """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
|
1136 # 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
|
1137 # 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
|
1138 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
|
1139 get_identity.return_value = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1140 "nicknames": ["nick1", "nick2"], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1141 "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
|
1142 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1143 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
|
1144 **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
|
1145 ) |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1146 |
81c79b7cafa7
tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents:
3809
diff
changeset
|
1147 # 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
|
1148 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
|
1149 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
|
1150 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1151 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1152 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
|
1153 """AP mentions by direct addressing are converted to XEP-0372 references""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1154 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1155 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
|
1156 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
|
1157 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1158 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
|
1159 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1160 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1161 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1162 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1163 "content": "<p>test mention by direct addressing</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1164 "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
|
1165 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1166 "to": [ap_const.NS_AP_PUBLIC, xmpp_actor_id], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1167 "type": "Note", |
3837
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 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
|
1170 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
|
1171 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1172 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
|
1173 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1174 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
|
1175 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
|
1176 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
|
1177 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1178 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1179 assert send_reference.call_count == 1 |
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["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
|
1181 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1182 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
|
1183 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
|
1184 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1185 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
|
1186 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1187 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
|
1188 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1189 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1190 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
|
1191 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1192 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1193 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
|
1194 """AP mentions in "tag" field are converted to XEP-0372 references""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1195 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1196 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
|
1197 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
|
1198 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1199 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
|
1200 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1201 direct_addr_mention = { |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1202 "attributedTo": TEST_AP_ACTOR_ID, |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1203 "cc": [], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1204 "content": "<p>test mention by tag</p>", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1205 "id": f"{TEST_AP_ACTOR_ID}/statuses/tag_123", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1206 "published": "2022-05-20T08:14:39Z", |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1207 "to": [ap_const.NS_AP_PUBLIC], |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1208 "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
|
1209 "type": "Note", |
3837
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 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
|
1212 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
|
1213 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1214 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
|
1215 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1216 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
|
1217 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
|
1218 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
|
1219 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1220 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1221 assert send_reference.call_count == 1 |
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["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
|
1223 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1224 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
|
1225 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
|
1226 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1227 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
|
1228 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1229 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
|
1230 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1231 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1232 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
|
1233 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1234 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1235 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
|
1236 """Check that mentions in body are converted to AP mentions""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1237 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1238 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
|
1239 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
|
1240 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1241 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1242 "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
|
1243 "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
|
1244 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1245 "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
|
1246 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1247 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
|
1248 ap_gateway.client, mb_data, public=True |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1249 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1250 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1251 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
|
1252 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
|
1253 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1254 "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
|
1255 "href": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1256 "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
|
1257 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1258 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
|
1259 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1260 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1261 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
|
1262 """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
|
1263 # 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
|
1264 # in mb_data_2_ap_item |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1265 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1266 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
|
1267 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
|
1268 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1269 mb_data = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1270 "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
|
1271 "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
|
1272 "service": TEST_JID.full(), |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1273 "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
|
1274 } |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1275 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
|
1276 ap_gateway.client, mb_data, public=False |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1277 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1278 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1279 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
|
1280 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
|
1281 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
|
1282 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1283 @ed |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1284 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
|
1285 """Check that XEP-0372 references are converted to AP mention""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1286 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1287 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
|
1288 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
|
1289 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1290 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
|
1291 item_elt = XMPP_ITEMS[0] |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1292 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
|
1293 "pubsub", |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1294 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
|
1295 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1296 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
|
1297 ) |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1298 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1299 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
|
1300 "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
|
1301 "type_": "mention", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1302 "anchor": anchor, |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1303 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1304 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
|
1305 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1306 # 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
|
1307 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1308 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
|
1309 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
|
1310 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1311 # "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
|
1312 # 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
|
1313 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
|
1314 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
|
1315 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1316 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
|
1317 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
|
1318 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1319 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
|
1320 # 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
|
1321 # 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
|
1322 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
|
1323 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
|
1324 get_items.return_value = ([mock_pubsub_item], {}) |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1325 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1326 ap_post.return_value.code = 202 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1327 await ap_gateway._on_reference_received( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1328 ap_gateway.client, message_elt, ref_data |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1329 ) |
3837
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1330 |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1331 # 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
|
1332 # actor, and they must be in "to" field and in "tag" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1333 assert ap_post.call_count == 1 |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1334 send_ap_item = ap_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
|
1335 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
|
1336 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
|
1337 expected_mention = { |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1338 "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
|
1339 "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
|
1340 # 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
|
1341 # item with XMPP |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1342 "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
|
1343 } |
56720561f45f
test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents:
3826
diff
changeset
|
1344 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
|
1345 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1346 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1347 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
|
1348 """XEP-0272 post repeat is converted to AP Announce activity""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1349 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1350 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
|
1351 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
|
1352 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1353 # 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
|
1354 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
|
1355 # repeated item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1356 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
|
1357 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
|
1358 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1359 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
|
1360 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1361 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
|
1362 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1363 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1364 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1365 <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
|
1366 <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
|
1367 <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
|
1368 <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
|
1369 <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
|
1370 <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
|
1371 </div> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1372 </title> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1373 <author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1374 <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
|
1375 <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
|
1376 </author> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1377 <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
|
1378 <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
|
1379 <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
|
1380 <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
|
1381 </entry> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1382 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1383 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1384 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1385 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
|
1386 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1387 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1388 ap_post.return_value.code = 202 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1389 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
|
1390 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
|
1391 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
|
1392 TEST_JID, |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1393 ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1394 [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
|
1395 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1396 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1397 assert ap_post.called |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1398 url, actor_id, doc = ap_post.call_args.args |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1399 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1400 assert actor_id == ap_gateway.build_apurl( |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1401 ap_const.TYPE_ACTOR, TEST_JID.userhost() |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1402 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1403 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
|
1404 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
|
1405 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
|
1406 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1407 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1408 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
|
1409 """AP Announce activity is converted to XEP-0272 post repeat""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1410 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1411 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
|
1412 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
|
1413 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1414 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
|
1415 # announced item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1416 xmpp_item = XMPP_ITEMS[0] |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1417 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
|
1418 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
|
1419 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1420 announce = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1421 "@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
|
1422 "type": "Announce", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1423 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1424 "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
|
1425 "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
|
1426 "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
|
1427 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1428 "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
|
1429 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1430 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
|
1431 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
|
1432 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
|
1433 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
|
1434 with patch.object( |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1435 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
|
1436 ) as cache_pubsub_items: |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1437 await ap_gateway.server.resource.handle_announce_activity( |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1438 TEST_AP_ACTOR_ID, |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1439 Request(MagicMock()), |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1440 announce, |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1441 None, |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1442 None, |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1443 None, |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1444 "", |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1445 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
|
1446 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1447 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1448 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
|
1449 # 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
|
1450 __, __, __, [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
|
1451 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
|
1452 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
|
1453 repeated = extra["repeated"] |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1454 assert ( |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1455 repeated["by"] |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1456 == ap_gateway.get_local_jid_from_account(TEST_AP_ACCOUNT).full() |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1457 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1458 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
|
1459 "pubsub", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1460 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
|
1461 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1462 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
|
1463 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1464 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
|
1465 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1466 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1467 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
|
1468 """Pubsub-attachments ``noticed`` is converted to AP Like activity""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1469 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1470 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
|
1471 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
|
1472 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1473 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
|
1474 # noticed item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1475 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
|
1476 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
|
1477 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
|
1478 ) |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1479 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1480 f""" |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1481 <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
|
1482 <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
|
1483 <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
|
1484 </attachments> |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1485 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1486 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1487 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1488 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
|
1489 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1490 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
|
1491 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1492 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1493 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1494 ap_post.return_value.code = 202 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1495 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
|
1496 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1497 assert ap_post.called |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1498 url, actor_id, doc = ap_post.call_args.args |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1499 assert url == TEST_USER_DATA["endpoints"]["sharedInbox"] |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1500 assert actor_id == ap_gateway.build_apurl( |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1501 ap_const.TYPE_ACTOR, TEST_JID.userhost() |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1502 ) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1503 assert doc["type"] == "Like" |
3890
c129234a5d0b
tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents:
3871
diff
changeset
|
1504 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
|
1505 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
|
1506 |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1507 @ed |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1508 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
|
1509 """AP Like activity is converted to ``noticed`` attachment""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1510 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3871
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1511 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
|
1512 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
|
1513 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1514 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
|
1515 # liked item |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1516 xmpp_item = XMPP_ITEMS[0] |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1517 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
|
1518 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
|
1519 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1520 like = { |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1521 "@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
|
1522 "type": "Like", |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1523 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1524 "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
|
1525 "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
|
1526 "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
|
1527 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1528 "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
|
1529 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1530 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
|
1531 get_items.return_value = ([], {}) |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1532 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
|
1533 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
|
1534 **self.ap_request_params( |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
1535 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
|
1536 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1537 ) |
8c01d8ab9447
tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents:
3837
diff
changeset
|
1538 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1539 assert send_items.called |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1540 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
|
1541 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
|
1542 assert si_service == TEST_JID |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1543 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
|
1544 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
|
1545 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1546 [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
|
1547 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
|
1548 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
|
1549 assert parsed_item["noticed"]["noticed"] == True |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1550 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1551 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1552 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
|
1553 """Pubsub-attachments ``reactions`` is converted to AP EmojiReact activity""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1554 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1555 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
|
1556 monkeypatch.setattr(ap_gateway, "ap_get", mock_ap_get) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1557 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1558 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
|
1559 # noticed item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1560 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
|
1561 ap_item_url = xmpp_uri.build_xmpp_uri( |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1562 "pubsub", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1563 path=recipient_jid.full(), |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1564 node=ap_gateway._m.namespace, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1565 item=ap_item["id"], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1566 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1567 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
|
1568 recipient_jid, ap_gateway._m.namespace, ap_item["id"] |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1569 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1570 reactions = ["🦁", "🥜", "🎻"] |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1571 item_elt = xml_tools.parse( |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1572 f""" |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1573 <item id="{TEST_JID.userhost()}" published="{TEST_JID.userhostJID()}"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1574 <attachments xmlns="urn:xmpp:pubsub-attachments:1"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1575 <reactions timestamp="2022-08-31T12:17:23Z"> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1576 <reaction>{reactions[0]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1577 <reaction>{reactions[1]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1578 <reaction>{reactions[2]}</reaction> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1579 </reactions> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1580 </attachments> |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1581 </item> |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1582 """ |
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1583 ) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1584 item_elt.uri = pubsub.NS_PUBSUB_EVENT |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1585 items_event = pubsub.ItemsEvent( |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1586 TEST_JID, recipient_jid, attachment_node, [item_elt], {} |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1587 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1588 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1589 with patch.object(ap_gateway, "ap_post") as ap_post: |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1590 ap_post.return_value.code = 202 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1591 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
|
1592 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1593 assert ap_post.call_count == 3 |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1594 for idx, call_args in enumerate(ap_post.call_args_list): |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1595 url, actor_id, doc = call_args.args |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1596 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
|
1597 assert actor_id == ap_gateway.build_apurl( |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1598 ap_const.TYPE_ACTOR, TEST_JID.userhost() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1599 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1600 assert doc["type"] == "EmojiReact" |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1601 assert ap_const.NS_AP_PUBLIC in doc["cc"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1602 assert doc["object"] == ap_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1603 # 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
|
1604 # 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
|
1605 # checked. |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1606 assert doc["content"] in reactions |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1607 reactions.remove(doc["content"]) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1608 assert len(reactions) == 0 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1609 |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1610 @ed |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1611 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
|
1612 """AP EmojiReact activity is converted to ``reactions`` attachment""" |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1613 monkeypatch.setattr(plugin_comp_ap_gateway.treq, "get", mock_treq_get) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1614 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
|
1615 monkeypatch.setattr(ap_gateway, "ap_get", mock_ap_get) |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1616 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1617 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
|
1618 # item on which reaction is attached |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1619 xmpp_item = XMPP_ITEMS[0] |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1620 xmpp_item_url = ap_gateway.build_apurl( |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1621 ap_const.TYPE_ITEM, TEST_JID.userhost(), xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1622 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1623 like = { |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1624 "@context": "https://www.w3.org/ns/activitystreams", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1625 "type": "EmojiReact", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1626 "actor": TEST_AP_ACTOR_ID, |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1627 "cc": [xmpp_actor_id, TEST_USER_DATA["followers"]], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1628 "id": "https://example.org/like/123", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1629 "object": xmpp_item_url, |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1630 "content": "🐅", |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1631 "published": "2022-07-22T09:24:12Z", |
3907
755920bd30da
tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents:
3891
diff
changeset
|
1632 "to": [ap_const.NS_AP_PUBLIC], |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1633 } |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1634 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
|
1635 get_items.return_value = ([], {}) |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1636 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
|
1637 await ap_gateway.server.resource.ap_inbox_request( |
3891
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1638 **self.ap_request_params( |
3981
acc9dfc8ba8d
component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents:
3908
diff
changeset
|
1639 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
|
1640 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1641 ) |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1642 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1643 assert send_items.called |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1644 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
|
1645 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
|
1646 assert si_service == TEST_JID |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1647 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
|
1648 TEST_JID, ap_gateway._m.namespace, xmpp_item["id"] |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1649 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3994
diff
changeset
|
1650 [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
|
1651 assert parsed_item["from"] == si_client.jid.full() |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1652 assert "reactions" in parsed_item |
989df1047c3c
tests (AP gateway): reactions tests:
Goffi <goffi@goffi.org>
parents:
3890
diff
changeset
|
1653 assert parsed_item["reactions"]["reactions"] == ["🐅"] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1654 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1655 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1656 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
|
1657 """XMPP events are converted to AP events""" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1658 # we use internal event data |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1659 event_data = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1660 "id": "event_123", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1661 "name": {"": "test event"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1662 "start": 1664222400.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1663 "end": 1664226000.0, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1664 "head-picture": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1665 "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
|
1666 }, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1667 "descriptions": [{"description": "meeting for test", "type": "text"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1668 "categories": [{"term": "test", "wikidata_id": "Q1003030"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1669 "locations": [{"description": "somewhere in the world"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1670 "rsvp": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1671 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1672 "fields": [ |
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 "type": "list-single", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1675 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1676 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1677 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1678 {"value": "maybe", "label": "maybe"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1679 {"value": "yes", "label": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1680 {"value": "no", "label": "no"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1681 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1682 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1683 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1684 "namespace": "urn:xmpp:events:rsvp:0", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1685 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1686 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1687 "extra": { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1688 "status": "confirmed", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1689 }, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1690 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1691 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1692 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
|
1693 ap_object = ap_item["object"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1694 actor_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1695 "https://test.example/_ap/actor/" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1696 "___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
|
1697 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1698 event_id = ( |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1699 "https://test.example/_ap/item/" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1700 "___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
|
1701 ) |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1702 assert ap_object["name"] == "test event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1703 assert ap_object["actor"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1704 assert ap_object["attributedTo"] == actor_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1705 assert ap_object["type"] == "Event" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1706 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
|
1707 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
|
1708 assert ap_object["id"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1709 assert ap_object["url"] == event_id |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1710 assert ap_object["attachment"] == [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1711 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1712 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1713 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1714 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1715 "url": "https://example.org/head_picture.jpg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1716 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1717 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1718 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
|
1719 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
|
1720 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
|
1721 assert ap_object["ical:status"] == "CONFIRMED" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1722 assert ap_item["type"] == "Create" |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1723 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1724 @ed |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1725 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
|
1726 """AP events are converted to XMPP events""" |
3994
69d970f974ff
component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents:
3981
diff
changeset
|
1727 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
|
1728 ap_object = { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1729 "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
|
1730 "attachment": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1731 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1732 "mediaType": "image/jpeg", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1733 "name": "Banner", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1734 "type": "Document", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1735 "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 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1738 "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
|
1739 "content": "<p>meeting for test</p>", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1740 "endTime": "2022-09-26T21:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1741 "ical:status": "CONFIRMED", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1742 "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
|
1743 "location": {"name": "somewhere in the world"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1744 "name": "test event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1745 "startTime": "2022-09-26T20:00:00Z", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1746 "tag": [{"name": "#test", "type": "Hashtag"}], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1747 "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
|
1748 "type": "Event", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1749 "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
|
1750 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1751 |
4259
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1752 event_data = await ap_gateway.ap_events.ap_item_2_event_data( |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1753 TEST_AP_ACTOR_ID, ap_object |
49019947cc76
component AP Gateway: implement HTTP GET signature.
Goffi <goffi@goffi.org>
parents:
4213
diff
changeset
|
1754 ) |
3908
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 assert event_data["id"] == ap_object["id"] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1757 assert event_data["name"] == {"": "test event"} |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1758 assert event_data["start"] == 1664222400 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1759 assert event_data["end"] == 1664226000 |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1760 assert event_data["head-picture"] == { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1761 "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
|
1762 } |
4285
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1763 assert event_data["descriptions"] == [ |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1764 {"description": "<p>meeting for test</p>", "type": "xhtml"} |
f1d0cde61af7
tests (unit): fix tests + black reformatting.
Goffi <goffi@goffi.org>
parents:
4259
diff
changeset
|
1765 ] |
3908
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1766 assert event_data["categories"] == [{"term": "test"}] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1767 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
|
1768 assert event_data["rsvp"] == [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1769 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1770 "fields": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1771 { |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1772 "label": "Attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1773 "name": "attending", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1774 "options": [ |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1775 {"label": "yes", "value": "yes"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1776 {"label": "no", "value": "no"}, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1777 ], |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1778 "required": True, |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1779 "type": "list-single", |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1780 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1781 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1782 } |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1783 ] |
d43b197735d1
tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents:
3907
diff
changeset
|
1784 assert event_data["extra"] == {"status": "confirmed"} |