annotate tests/unit/test_ap-gateway.py @ 4219:1b5cf2ee1d86

plugin XEP-0384, XEP-0391: download missing devices list: when a peer jid was not in our roster, devices list was not retrieved, resulting in failed en/decryption. This patch does check it and download missing devices list in necessary. There is no subscription managed yet, so the list won't be updated in case of new devices, this should be addressed at some point.
author Goffi <goffi@goffi.org>
date Tue, 05 Mar 2024 17:31:36 +0100
parents 716dd791be46
children 49019947cc76
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_0424 import NS_MESSAGE_RETRACT
4b842c1fb686 refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents: 4037
diff changeset
46 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
47 from libervia.backend.tools import xml_tools
4b842c1fb686 refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents: 4037
diff changeset
48 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
49 from libervia.backend.tools.utils import xmpp_date
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
50
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 TEST_BASE_URL = "https://example.org"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
53 TEST_USER = "test_user"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
54 TEST_AP_ACCOUNT = f"{TEST_USER}@example.org"
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
55 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
56 PUBLIC_URL = "test.example"
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
57 TEST_JID = jid.JID(f"some_user@{PUBLIC_URL}")
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
58
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
59 AP_REQUESTS = {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
60 f"{TEST_BASE_URL}/.well-known/webfinger?"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
61 f"resource=acct:{parse.quote(TEST_AP_ACCOUNT)}": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
62 "aliases": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
63 f"{TEST_BASE_URL}/@{TEST_USER}",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
64 f"{TEST_BASE_URL}/users/{TEST_USER}",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
65 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
66 "links": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
67 {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
68 "href": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
69 "rel": "self",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
70 "type": "application/activity+json",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
71 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
72 ],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
73 "subject": f"acct:{TEST_AP_ACCOUNT}",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
74 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
75 f"{TEST_BASE_URL}/users/{TEST_USER}": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
76 "@context": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
77 "https://www.w3.org/ns/activitystreams",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
78 ],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
79 "endpoints": {"sharedInbox": f"{TEST_BASE_URL}/inbox"},
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
80 "followers": f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
81 "following": f"{TEST_BASE_URL}/users/{TEST_USER}/following",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
82 "id": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
83 "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
84 "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
85 "summary": "<p>test account</p>",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
86 "outbox": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
87 "preferredUsername": f"{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
88 "type": "Person",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
89 "url": f"{TEST_BASE_URL}/@{TEST_USER}",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
90 },
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
91 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
92 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
93 "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
94 "links": [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
95 {
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
96 "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
97 "rel": "self",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
98 "type": "application/activity+json",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
99 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
100 ],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
101 "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
102 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
103 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
104 "@context": [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
105 "https://www.w3.org/ns/activitystreams",
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
106 ],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
107 "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
108 "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
109 "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
110 "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
111 "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
112 "name": "",
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
113 "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
114 "preferredUsername": f"ext_user",
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
115 "type": "Person",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
116 "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
117 },
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
118 f"{TEST_BASE_URL}/users/{TEST_USER}/outbox": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
119 "@context": "https://www.w3.org/ns/activitystreams",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
120 "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
121 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
122 "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
123 "totalItems": 4,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
124 "type": "OrderedCollection",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
125 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
126 f"{TEST_BASE_URL}/users/{TEST_USER}/outbox?page=true": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
127 "@context": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
128 "https://www.w3.org/ns/activitystreams",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
129 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
130 "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
131 "orderedItems": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
132 {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
133 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
134 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
135 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
136 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
137 "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
138 "object": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
139 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
140 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
141 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
142 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
143 "content": "<p>test message 1</p>",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
144 "contentMap": {"en": "<p>test message 1</p>"},
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
145 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/1",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
146 "inReplyTo": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
147 "published": "2021-12-16T17:28:03Z",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
148 "sensitive": False,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
149 "summary": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
150 "tag": [],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
151 "to": ["https://www.w3.org/ns/activitystreams#Public"],
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
152 "type": "Note",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
153 "url": f"{TEST_BASE_URL}/@{TEST_USER}/1",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
154 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
155 "published": "2021-12-16T17:28:03Z",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
156 "to": ["https://www.w3.org/ns/activitystreams#Public"],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
157 "type": "Create",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
158 },
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 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
161 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
162 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
163 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
164 "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
165 "object": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
166 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
167 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
168 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
169 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
170 "content": "<p>test message 2</p>",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
171 "contentMap": {"en": "<p>test message 2</p>"},
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
172 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/2",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
173 "inReplyTo": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
174 "published": "2021-12-16T17:27:03Z",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
175 "sensitive": False,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
176 "summary": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
177 "tag": [],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
178 "to": ["https://www.w3.org/ns/activitystreams#Public"],
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
179 "type": "Note",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
180 "url": f"{TEST_BASE_URL}/@{TEST_USER}/2",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
181 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
182 "published": "2021-12-16T17:27:03Z",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
183 "to": ["https://www.w3.org/ns/activitystreams#Public"],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
184 "type": "Create",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
185 },
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 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
188 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
189 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
190 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
191 "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
192 "object": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
193 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
194 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
195 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
196 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
197 "content": "<p>test message 3</p>",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
198 "contentMap": {"en": "<p>test message 3</p>"},
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
199 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/3",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
200 "inReplyTo": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
201 "published": "2021-12-16T17:26:03Z",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
202 "sensitive": False,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
203 "summary": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
204 "tag": [],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
205 "to": ["https://www.w3.org/ns/activitystreams#Public"],
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
206 "type": "Note",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
207 "url": f"{TEST_BASE_URL}/@{TEST_USER}/3",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
208 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
209 "published": "2021-12-16T17:26:03Z",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
210 "to": ["https://www.w3.org/ns/activitystreams#Public"],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
211 "type": "Create",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
212 },
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 "actor": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
215 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
216 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
217 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
218 "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
219 "object": {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
220 "attributedTo": f"{TEST_BASE_URL}/users/{TEST_USER}",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
221 "cc": [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
222 f"{TEST_BASE_URL}/users/{TEST_USER}/followers",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
223 ],
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
224 "content": "<p>test message 4</p>",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
225 "contentMap": {"en": "<p>test message 4</p>"},
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
226 "id": f"{TEST_BASE_URL}/users/{TEST_USER}/statuses/4",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
227 "inReplyTo": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
228 "published": "2021-12-16T17:25:03Z",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
229 "sensitive": False,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
230 "summary": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
231 "tag": [],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
232 "to": ["https://www.w3.org/ns/activitystreams#Public"],
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
233 "type": "Note",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
234 "url": f"{TEST_BASE_URL}/@{TEST_USER}/4",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
235 },
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
236 "published": "2021-12-16T17:25:03Z",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
237 "to": ["https://www.w3.org/ns/activitystreams#Public"],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
238 "type": "Create",
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
239 },
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
240 ],
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
241 "partOf": f"{TEST_BASE_URL}/users/{TEST_USER}/outbox",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
242 "prev": None,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
243 "type": "OrderedCollectionPage",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
244 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
245 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
246 "@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
247 "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
248 "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
249 "totalItems": 2,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
250 "type": "OrderedCollection",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
251 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
252 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
253 "@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
254 "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
255 "orderedItems": [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
256 f"{TEST_BASE_URL}/users/ext_user",
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
257 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
258 ],
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
259 "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
260 "totalItems": 2,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
261 "type": "OrderedCollectionPage",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
262 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
263 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
264 "@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
265 "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
266 "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
267 "totalItems": 2,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
268 "type": "OrderedCollection",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
269 },
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
270 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
271 "@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
272 "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
273 "orderedItems": [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
274 f"{TEST_BASE_URL}/users/ext_user",
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
275 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
276 ],
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
277 "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
278 "totalItems": 2,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
279 "type": "OrderedCollectionPage",
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
280 },
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
281 }
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 XMPP_ITEM_TPL = """
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
284 <item id='{id}' publisher='{publisher_jid}'>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
285 <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
286 <title type='xhtml'>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
287 <div xmlns='http://www.w3.org/1999/xhtml'>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
288 <p>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
289 XMPP item {id}
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
290 </p>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
291 </div>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
292 </title>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
293 <title type='text'>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
294 XMPP item {id}
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
295 </title>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
296 <author>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
297 <name>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
298 test_user
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
299 </name>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
300 <uri>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
301 xmpp:{publisher_jid}
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
302 </uri>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
303 </author>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
304 <updated>
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 <published>
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 <id>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
311 xmpp:{publisher_jid}?;node=urn%3Axmpp%3Amicroblog%3A0;item={id}
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
312 </id>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
313 </entry>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
314 </item>
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
315 """
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 ITEM_BASE_TS = 1643385499
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
318 XMPP_ITEMS = [
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
319 xml_tools.parse(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
320 "".join(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
321 l.strip()
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
322 for l in XMPP_ITEM_TPL.format(
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
323 id=i,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
324 publisher_jid="some_user@test.example",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
325 updated=xmpp_date(ITEM_BASE_TS + i * 60),
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
326 published=xmpp_date(ITEM_BASE_TS + i * 60),
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
327 ).split("\n")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
328 ),
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
329 namespace=pubsub.NS_PUBSUB,
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
330 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
331 for i in range(1, 5)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
332 ]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
333
3871
8c01d8ab9447 tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents: 3837
diff changeset
334 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
335 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
336 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
337 # 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
338 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
339 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
340
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
341
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
342 async def mock_ap_get(url):
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
343 return deepcopy(AP_REQUESTS[url])
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
344
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 async def mock_treq_json(data):
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
347 return dict(data)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
348
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
349
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
350 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
351 """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
352
81c79b7cafa7 tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents: 3809
diff changeset
353 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
354 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
355 returned
81c79b7cafa7 tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents: 3809
diff changeset
356 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
357 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
358 """
81c79b7cafa7 tests (unit/ap-gateway): tests for XMPP identity/vCard4 <=> AP actor data conversion:
Goffi <goffi@goffi.org>
parents: 3809
diff changeset
359 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
360 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
361 raise StanzaError("item-not-found")
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
362 ret_items = kwargs.pop("ret_items", XMPP_ITEMS)
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
363 rsm_resp = rsm.RSMResponse(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
364 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
365 )
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
366 return ret_items, {"rsm": rsm_resp.toDict(), "complete": True}
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
367
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
368
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
369 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
370 """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
371
56720561f45f test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents: 3826
diff changeset
372 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
373 """
56720561f45f test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents: 3826
diff changeset
374 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
375 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
376 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
377
56720561f45f test (unit/AP gateway): tests for XMPP reference/mention <=> AP mention conversion:
Goffi <goffi@goffi.org>
parents: 3826
diff changeset
378
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
379 def mock_client(jid):
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
380 client = MagicMock()
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
381 client.jid = jid
3890
c129234a5d0b tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents: 3871
diff changeset
382 client.host = "test.example"
c129234a5d0b tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents: 3871
diff changeset
383 client._ap_storage.get = AsyncMock()
c129234a5d0b tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents: 3871
diff changeset
384 client._ap_storage.aset = AsyncMock()
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
385 return client
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
386
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
387
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
388 def get_virtual_client(jid):
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
389 return mock_client(jid)
3890
c129234a5d0b tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents: 3871
diff changeset
390
c129234a5d0b tests (AP gateway): fix tests following changes in gateway:
Goffi <goffi@goffi.org>
parents: 3871
diff changeset
391
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
392 class FakeTReqPostResponse:
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
393 code = 202
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
394
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
395
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
396 @pytest.fixture(scope="session")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
397 def ap_gateway(host):
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
398 gateway = plugin_comp_ap_gateway.APGateway(host)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
399 gateway.initialised = True
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
400 gateway.is_pubsub = AsyncMock()
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
401 gateway.is_pubsub.return_value = False
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
402 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
403 client.get_virtual_client = get_virtual_client
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
404 gateway.client = client
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
405 gateway.local_only = True
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
406 gateway.public_url = PUBLIC_URL
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
407 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
408 gateway.auto_mentions = True
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
409 gateway.base_ap_url = parse.urljoin(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
410 f"https://{gateway.public_url}", f"{gateway.ap_path}/"
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
411 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
412 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
413 gateway.public_key_pem = None
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
414 return gateway
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
415
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 class TestActivityPubGateway:
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
418 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
419 return next(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
420 t
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
421 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
422 if t.getAttribute("type") == "xhtml"
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
423 )
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
424
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
425 @ed
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
426 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
427 """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
428 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
429
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
430 # local jid
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
431 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
432 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
433 == "simple@test.example"
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
434 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
435
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
436 # non local jid
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
437 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
438 await get_account(jid_=jid.JID("simple@example.org"), node=None)
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
439 == "___simple.40example.2eorg@ap.test.example"
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
440 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
441
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
442 # local jid with non microblog node
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
443 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
444 await get_account(jid_=jid.JID("simple@test.example"), node="some_other_node")
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
445 == "some_other_node---simple@test.example"
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
446 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
447
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
448 # local pubsub node
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
449 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
450 is_pubsub.return_value = True
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
451 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
452 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
453 == "some_node@pubsub.test.example"
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
454 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
455
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
456 # non local pubsub node
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
457 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
458 is_pubsub.return_value = True
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
459 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
460 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
461 == "___some_node.40pubsub.2eexample.2eorg@ap.test.example"
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
462 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
463
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
464 @ed
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
465 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
466 """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
467 get_jid_node = ap_gateway.get_jid_and_node
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
468
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
469 # 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
470 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
471 is_pubsub.return_value = False
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
472
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
473 # simple local jid
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
474 assert await get_jid_node("toto@test.example") == (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
475 jid.JID("toto@test.example"),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
476 None,
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
477 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
478
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
479 # simple external jid
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
480
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
481 ## with "local_only" set, it should raise an exception
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
482 with pytest.raises(exceptions.PermissionError):
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
483 await get_jid_node("toto@example.org")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
484
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
485 ## with "local_only" unset, it should work
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
486 with monkeypatch.context() as m:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
487 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
488 assert await get_jid_node("toto@example.org") == (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
489 jid.JID("toto@example.org"),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
490 None,
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
491 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
492
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
493 # explicit node
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
494 assert await get_jid_node("tata---toto@test.example") == (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
495 jid.JID("toto@test.example"),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
496 "tata",
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
497 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
498
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
499 # 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
500 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
501 is_pubsub.return_value = True
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
502
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
503 # simple local node
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
504 assert await get_jid_node("toto@pubsub.test.example") == (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
505 jid.JID("pubsub.test.example"),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
506 "toto",
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
507 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
508
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
509 # encoded local node
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
510 assert await get_jid_node(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
511 "___urn.3axmpp.3amicroblog.3a0@pubsub.test.example"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
512 ) == (jid.JID("pubsub.test.example"), "urn:xmpp:microblog:0")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
513
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
514 @ed
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
515 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
516 """AP requests are converted to pubsub"""
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
517 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
518 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
519 monkeypatch.setattr(ap_gateway, "ap_get", mock_ap_get)
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
520
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
521 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
522 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
523 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
524
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
525 assert rsm_resp.count == 4
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
526 assert rsm_resp.index == 0
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
527 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
528 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
529
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
530 title_xhtml = self.get_title_xhtml(items[0])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
531 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
532 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
533 "<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
534 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
535 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
536 author_uri = str(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
537 [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
538 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
539 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
540 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
541
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
542 title_xhtml = self.get_title_xhtml(items[1])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
543 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
544 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
545 "<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
546 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
547 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
548 author_uri = str(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
549 [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
550 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
551 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
552 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
553
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
554 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
555 outbox,
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
556 max_items=2,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
557 after_id="https://example.org/users/test_user/statuses/3",
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
558 )
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 assert rsm_resp.count == 4
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
561 assert rsm_resp.index == 2
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
562 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
563 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
564
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
565 title_xhtml = self.get_title_xhtml(items[0])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
566 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
567 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
568 "<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
569 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
570 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
571 author_uri = str(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
572 [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
573 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
574 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
575 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
576
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
577 title_xhtml = self.get_title_xhtml(items[1])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
578 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
579 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
580 "<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
581 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
582 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
583 author_uri = str(
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
584 [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
585 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
586 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
587 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
588
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
589 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
590
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
591 assert rsm_resp.count == 4
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
592 assert rsm_resp.index == 2
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
593 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
594 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
595 assert len(items) == 1
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
596
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
597 title_xhtml = self.get_title_xhtml(items[0])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
598 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
599 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
600 "<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
601 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
602 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
603 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
604
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
605 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
606 outbox, max_items=3, chronological_pagination=False
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
607 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
608 assert rsm_resp.count == 4
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
609 assert rsm_resp.index == 1
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
610 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
611 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
612 assert len(items) == 3
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
613 title_xhtml = self.get_title_xhtml(items[0])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
614 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
615 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
616 "<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
617 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
618 )
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
619 title_xhtml = self.get_title_xhtml(items[2])
3783
fedbf7aade11 tests (unit/ap_gateway): fix tests
Goffi <goffi@goffi.org>
parents: 3770
diff changeset
620 assert title_xhtml.toXml() == (
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
621 "<title xmlns='http://www.w3.org/2005/Atom' type='xhtml'>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
622 "<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
623 "</title>"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
624 )
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
625
3871
8c01d8ab9447 tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents: 3837
diff changeset
626 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
627 self,
8c01d8ab9447 tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents: 3837
diff changeset
628 ap_gateway,
8c01d8ab9447 tests (unit/AP gateway): tests for item repeat/announce and noticed/like conversion:
Goffi <goffi@goffi.org>
parents: 3837
diff changeset
629 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
630 url: Optional[str] = None,
3981
acc9dfc8ba8d component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents: 3908
diff changeset
631 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
632 query_data: Optional[dict] = None,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
633 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
634 ) -> Dict[str, Any]:
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
635 """Generate parameters for HTTPAPGServer's AP*Request
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
636
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
637 @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
638 @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
639 @param data: object used as body of the request
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
640 @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
641 @return dict with kw params to use
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
642 """
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
643 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
644 if type_ is not None:
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
645 path = f"_ap/{type_}/some_user@test.example"
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
646 else:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
647 url_parsed = parse.urlparse(url)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
648 path = url_parsed.path.lstrip("/")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
649 type_ = path.split("/")[1]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
650 if query_data is None:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
651 query_data = parse.parse_qs(url_parsed.query)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
652
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
653 if query_data:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
654 uri = f"{path}?{parse.urlencode(query_data, doseq=True)}"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
655 else:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
656 uri = path
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
657
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
658 test_jid = jid.JID("some_user@test.example")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
659 request = Request(MagicMock())
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
660 request.path = path.encode()
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
661 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
662
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
663 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
664 kwargs = {
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
665 "request": request,
3981
acc9dfc8ba8d component AP gateway: parse body immediately on `POST` request:
Goffi <goffi@goffi.org>
parents: 3908
diff changeset
666 "data": data,
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
667 "account_jid": test_jid,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
668 "node": None,
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
669 "ap_account": test_jid.full(),
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
670 "ap_url": ap_url,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
671 "signing_actor": signing_actor,
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
672 }
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
673 if type_ == "outbox" and query_data:
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
674 kwargs["query_data"] = query_data
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
675 # 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
676 del kwargs["signing_actor"]
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
677 return kwargs
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
678
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
679 @ed
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
680 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
681 """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
682 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
683 outbox = await ap_gateway.server.resource.ap_outbox_request(
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
684 **self.ap_request_params(ap_gateway, "outbox")
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
685 )
3908
d43b197735d1 tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents: 3907
diff changeset
686 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
687 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
688 assert outbox["totalItems"] == len(XMPP_ITEMS)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
689 assert outbox["type"] == "OrderedCollection"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
690 assert outbox["first"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
691 assert outbox["last"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
692
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
693 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
694 **self.ap_request_params(ap_gateway, url=outbox["first"])
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
695 )
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
696 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
697 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
698 first_page["id"]
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
699 == "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
700 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
701 assert first_page["type"] == "OrderedCollectionPage"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
702 assert first_page["partOf"] == outbox["id"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
703 assert len(first_page["orderedItems"]) == len(XMPP_ITEMS)
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
704 first_item = first_page["orderedItems"][0]
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
705 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
706 assert (
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
707 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
708 )
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
709 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
710 first_item["actor"]
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
711 == "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
712 )
3733
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
713 assert first_item["type"] == "Create"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
714 first_item_obj = first_item["object"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
715 assert first_item_obj["id"] == first_item["id"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
716 assert first_item_obj["type"] == "Note"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
717 assert first_item_obj["published"] == "2022-01-28T16:02:19Z"
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
718 assert first_item_obj["attributedTo"] == first_item["actor"]
6cc39a3b8c14 tests (unit): AP gateway unit tests:
Goffi <goffi@goffi.org>
parents:
diff changeset
719 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
720 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
721
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
722 @ed
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
723 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
724 """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
725 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
726 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
727 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
728
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
729 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
730 jid.JID("toto@example.org"),
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
731 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
732 ap_gateway._pps.subscriptions_node,
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
733 None,
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
734 None,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
735 None,
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
736 )
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
737 assert len(items) == 2
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
738 for idx, entity in enumerate(
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
739 ("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
740 ):
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
741 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
742 assert subscription_elt is not None
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
743 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
744 assert subscription_elt["service"] == entity
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
745
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
746 @ed
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
747 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
748 """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
749 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
750 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
751 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
752
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
753 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
754 jid.JID("toto@example.org"),
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
755 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
756 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
757 None,
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
758 None,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
759 None,
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
760 )
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
761 assert len(items) == 2
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
762 for idx, entity in enumerate(
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
763 ("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
764 ):
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
765 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
766 assert subscriber_elt is not None
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
767 assert subscriber_elt["jid"] == entity
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
768
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
769 @ed
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
770 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
771 """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
772 subscriptions = [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
773 pubsub.Item(
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
774 id="subscription_1",
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
775 payload=ap_gateway._pps.build_subscription_elt(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
776 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
777 ),
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
778 ),
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
779 pubsub.Item(
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
780 id="subscription_2",
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
781 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
782 ap_gateway._m.namespace,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
783 jid.JID("ext_user\\40example.org@ap.test.example"),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
784 ),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
785 ),
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
786 ]
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
787 monkeypatch.setattr(
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
788 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
789 )
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
790 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
791 **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
792 )
3908
d43b197735d1 tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents: 3907
diff changeset
793 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
794 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
795 following["id"]
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
796 == "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
797 )
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
798 assert following["totalItems"] == len(subscriptions)
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
799 assert following["type"] == "OrderedCollection"
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
800 assert following.get("first")
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
801
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
802 first_page = following["first"]
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
803 assert first_page["type"] == "OrderedCollectionPage"
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
804 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
805 items = first_page["orderedItems"]
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
806 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
807
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
808 @ed
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
809 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
810 """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
811 subscribers = [
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
812 pubsub.Item(
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
813 id="subscriber_1",
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
814 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
815 jid.JID("local_user@test.example")
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
816 ),
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
817 ),
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
818 pubsub.Item(
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
819 id="subscriber_2",
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
820 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
821 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
822 ),
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
823 ),
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
824 ]
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
825 monkeypatch.setattr(
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
826 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
827 )
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
828 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
829 **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
830 )
3908
d43b197735d1 tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents: 3907
diff changeset
831 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
832 assert (
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
833 followers["id"]
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
834 == "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
835 )
3770
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
836 assert followers["totalItems"] == len(subscribers)
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
837 assert followers["type"] == "OrderedCollection"
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
838 assert followers.get("first")
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
839
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
840 first_page = followers["first"]
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
841 assert first_page["type"] == "OrderedCollectionPage"
f31113777881 tests (unit/ap-gateway): tests for following/followers <=> PPS:
Goffi <goffi@goffi.org>
parents: 3735
diff changeset
842 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
843 items = first_page["orderedItems"]
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
844 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
845
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
846 @ed
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
847 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
848 """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
849 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
850 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
851 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
852 mess_data = {
39fc2e1b3793 tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents: 3785
diff changeset
853 "from": TEST_JID,
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
854 "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
855 "type": "chat",
39fc2e1b3793 tests (unit/ap gateway): fix `onMessage` call following change in the component:
Goffi <goffi@goffi.org>
parents: 3785
diff changeset
856 "message": {"": "This is a test message."},
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
857 "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
858 }
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
859 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
860 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
861 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
862 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
863 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
864 obj = doc["object"]
3908
d43b197735d1 tests (unit/AP gateway): add tests for events:
Goffi <goffi@goffi.org>
parents: 3907
diff changeset
865 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
866 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
867 assert obj["type"] == "Note"
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
868 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
869 assert obj["attributedTo"] == (
3994
69d970f974ff component AP gateway: don't percent-encode `@`:
Goffi <goffi@goffi.org>
parents: 3981
diff changeset
870 "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
871 )
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
872 # 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
873 # ("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
874 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
875 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
876 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
877 assert field not in doc
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
878 assert field not in obj
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
879
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
880 @ed
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
881 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
882 """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
883 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
884 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
885 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
886 # 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
887 monkeypatch.setattr(defer, "DeferredList", AsyncMock())
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
888
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
889 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
890 direct_ap_message = {
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
891 "attributedTo": TEST_AP_ACTOR_ID,
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
892 "cc": [],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
893 "content": "<p>test direct message</p>",
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
894 "contentMap": {"en": "<p>test direct message</p>"},
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
895 "id": f"{TEST_AP_ACTOR_ID}/statuses/123",
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
896 "published": "2022-05-20T08:14:39Z",
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
897 "to": [xmpp_actor_id],
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
898 "type": "Note",
3785
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
899 }
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
900 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
901 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
902 )
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
903 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
904 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
905 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
906 )
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 # 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
909 # 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
910 assert sendMessage.called
0b54be42d0aa test (unit/AP gateway): AP direct message ↔ XMPP `<message>` conversion:
Goffi <goffi@goffi.org>
parents: 3783
diff changeset
911 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
912 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
913
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
914 @ed
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
915 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
916 """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
917 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
918 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
919 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
920 retract_id = "retract_123"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
921 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
922 retract_elt["id"] = retract_id
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
923 items_event = pubsub.ItemsEvent(
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
924 sender=TEST_JID,
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
925 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
926 nodeIdentifier=ap_gateway._m.namespace,
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
927 items=[retract_elt],
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
928 headers={},
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
929 )
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
930 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
931 sign_and_post.return_value = FakeTReqPostResponse()
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
932 # 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
933 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
934 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
935 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
936 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
937 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
938 assert actor_id == jid_actor_id
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
939 assert doc["type"] == "Delete"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
940 assert doc["actor"] == jid_actor_id
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
941 obj = doc["object"]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
942 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
943 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
944 assert obj["id"] == url_item_id
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
945
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
946 @ed
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
947 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
948 """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
949 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
950 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
951 )
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 ap_item = {
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
954 "@context": "https://www.w3.org/ns/activitystreams",
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
955 "actor": TEST_AP_ACTOR_ID,
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
956 "id": "https://test.example/retract_123",
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
957 "type": "Delete",
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
958 "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
959 "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
960 }
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
961 with patch.multiple(
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
962 ap_gateway.host.memory.storage,
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
963 get=DEFAULT,
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
964 get_pubsub_node=DEFAULT,
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
965 delete_pubsub_items=DEFAULT,
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
966 ) as mock_objs:
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
967 mock_objs["get"].return_value = None
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
968 cached_node = MagicMock()
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
969 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
970 subscription = MagicMock()
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
971 subscription.state = SubscriptionState.SUBSCRIBED
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
972 subscription.subscriber = TEST_JID
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
973 cached_node.subscriptions = [subscription]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
974 with patch.object(
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
975 ap_gateway.pubsub_service, "notifyRetract"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
976 ) as notifyRetract:
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
977 # 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
978 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
979 client=client,
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
980 destinee=None,
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
981 node=ap_gateway._m.namespace,
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
982 item=ap_item,
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
983 )
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 # item is deleted from database
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
986 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
987 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
988 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
989
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
990 # retraction notification is sent to subscribers
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
991 assert notifyRetract.call_count == 1
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
992 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
993 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
994 notifications = notifyRetract.call_args.args[2]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
995 assert len(notifications) == 1
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
996 subscriber, __, item_elts = notifications[0]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
997 assert subscriber == TEST_JID
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
998 assert len(item_elts) == 1
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
999 item_elt = item_elts[0]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1000 assert isinstance(item_elt, domish.Element)
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1001 assert item_elt.name == "item"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1002 assert item_elt["id"] == ap_item["id"]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1003
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1004 @ed
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1005 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
1006 """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
1007 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
1008 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
1009 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
1010 # 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
1011 origin_id = "mess_retract_123"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1012
4213
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1013 # we call send_retract to get the message element of a retraction request
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1014 fake_client = MagicMock()
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1015 fake_client.jid = TEST_JID
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
1016 dest_jid = ap_gateway.get_local_jid_from_account(TEST_AP_ACCOUNT)
4213
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1017 fake_history = MagicMock()
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1018 fake_history.type = C.MESS_TYPE_CHAT
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1019 ap_gateway._r.send_retract(fake_client, dest_jid, origin_id, fake_history)
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1020 # 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
1021 message_retract_elt = fake_client.send.call_args.args[0]
4213
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1022 retract_elt = next(message_retract_elt.elements(NS_MESSAGE_RETRACT, "retract"))
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
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
4213
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1076 fake_history.dest = str(TEST_JID)
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1077 fake_history.dest_jid = TEST_JID
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1078 fake_history.origin_id = ap_item["id"]
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1079 storage_get.return_value = fake_history
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1080 # 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
1081 await ap_gateway.new_ap_delete_item(
3907
755920bd30da tests (unit/AP gateway): fix tests:
Goffi <goffi@goffi.org>
parents: 3891
diff changeset
1082 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
1083 )
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1084
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1085 # item is deleted from database
4037
524856bd7b19 massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents: 3994
diff changeset
1086 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
1087 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
1088 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
1089
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1090 # retraction notification is sent to destinee
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1091 assert fake_send.call_count == 1
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1092 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
1093 assert sent_elt.name == "message"
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1094 assert sent_elt["from"] == client.jid.full()
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
1095 assert sent_elt["to"] == TEST_JID.full()
4213
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1096 retract_elt = next(sent_elt.elements(NS_MESSAGE_RETRACT, "retract"))
716dd791be46 tests (unit): fix tests
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
1097 assert retract_elt["id"] == ap_item["id"]
3809
04b57c0b2278 tests (unit/ap gateway): message/item retractation tests:
Goffi <goffi@goffi.org>
parents: 3808
diff changeset
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"}