annotate tests/unit/test_ap-gateway.py @ 4180:b86912d3fd33

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