annotate tests/unit/test_ap-gateway.py @ 4141:ba8ddfdd334f

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