Mercurial > libervia-backend
annotate libervia/backend/test/test_core_xmpp.py @ 4301:9deb3ddb2921
CLI: add commands to handle gateways:
rel 449
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 06 Sep 2024 18:03:01 +0200 |
parents | 0d7bb4df2343 |
children |
rev | line source |
---|---|
3028 | 1 #!/usr/bin/env python3 |
3137 | 2 |
335 | 3 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
4 # SAT: a jabber client |
3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
335 | 6 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
10 # (at your option) any later version. |
335 | 11 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
15 # GNU Affero General Public License for more details. |
335 | 16 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
591
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
335 | 19 |
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
20 from libervia.backend.test import helpers |
3028 | 21 from .constants import Const |
335 | 22 from twisted.trial import unittest |
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
23 from libervia.backend.core import xmpp |
335 | 24 from twisted.words.protocols.jabber.jid import JID |
25 from wokkel.generic import parseXml | |
26 from wokkel.xmppim import RosterItem | |
27 | |
28 | |
29 class SatXMPPClientTest(unittest.TestCase): | |
30 | |
31 def setUp(self): | |
32 self.host = helpers.FakeSAT() | |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
33 self.client = xmpp.SatXMPPClient( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
34 self.host, Const.PROFILE[0], JID("test@example.org"), "test" |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
35 ) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
36 |
335 | 37 def test_init(self): |
38 """Check that init values are correctly initialised""" | |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
39 self.assertEqual(self.client.profile, Const.PROFILE[0]) |
3398
467d6c709f1d
test: fixed use of `client.host` in legacy test:
Goffi <goffi@goffi.org>
parents:
3137
diff
changeset
|
40 print(self.client.jid.host) |
335 | 41 self.assertEqual(self.client.host_app, self.host) |
42 | |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
43 |
335 | 44 class SatMessageProtocolTest(unittest.TestCase): |
45 | |
46 def setUp(self): | |
47 self.host = helpers.FakeSAT() | |
48 self.message = xmpp.SatMessageProtocol(self.host) | |
649 | 49 self.message.parent = helpers.FakeClient(self.host) |
335 | 50 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
51 def test_on_message(self): |
335 | 52 xml = """ |
53 <message type="chat" from="sender@example.net/house" to="test@example.org/SàT" id="test_1"> | |
54 <body>test</body> | |
55 </message> | |
56 """ | |
57 stanza = parseXml(xml) | |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
58 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
59 "message_new", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
60 "sender@example.net/house", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
61 "test", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
62 "chat", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
63 "test@example.org/SàT", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
64 {}, |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
65 profile=Const.PROFILE[0], |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
66 ) |
335 | 67 self.message.onMessage(stanza) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
68 |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
69 |
4107
bc7d45dedeb0
backend: rename `SatRosterProtocol` to `LiberviaRosterProtocol`
Goffi <goffi@goffi.org>
parents:
4071
diff
changeset
|
70 class LiberviaRosterProtocolTest(unittest.TestCase): |
335 | 71 |
72 def setUp(self): | |
73 self.host = helpers.FakeSAT() | |
4107
bc7d45dedeb0
backend: rename `SatRosterProtocol` to `LiberviaRosterProtocol`
Goffi <goffi@goffi.org>
parents:
4071
diff
changeset
|
74 self.roster = xmpp.LiberviaRosterProtocol(self.host) |
649 | 75 self.roster.parent = helpers.FakeClient(self.host) |
335 | 76 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
77 def test_register_item(self): |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
78 roster_item = RosterItem(Const.JID[0]) |
3028 | 79 roster_item.name = "Test Man" |
335 | 80 roster_item.subscriptionTo = True |
81 roster_item.subscriptionFrom = True | |
82 roster_item.ask = False | |
3028 | 83 roster_item.groups = set(["Test Group 1", "Test Group 2", "Test Group 3"]) |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
84 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
85 "contact_new", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
86 Const.JID_STR[0], |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
87 {"to": "True", "from": "True", "ask": "False", "name": "Test Man"}, |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
88 set(["Test Group 1", "Test Group 2", "Test Group 3"]), |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
89 Const.PROFILE[0], |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
90 ) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
91 self.roster._register_item(roster_item) |
335 | 92 |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
93 |
335 | 94 class SatPresenceProtocolTest(unittest.TestCase): |
95 | |
96 def setUp(self): | |
97 self.host = helpers.FakeSAT() | |
98 self.presence = xmpp.SatPresenceProtocol(self.host) | |
649 | 99 self.presence.parent = helpers.FakeClient(self.host) |
335 | 100 |
101 def test_availableReceived(self): | |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
102 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
103 "presence_update", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
104 Const.JID_STR[0], |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
105 "xa", |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
106 15, |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
107 {"default": "test status", "fr": "statut de test"}, |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
108 Const.PROFILE[0], |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
109 ) |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
110 self.presence.availableReceived( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
111 Const.JID[0], "xa", {None: "test status", "fr": "statut de test"}, 15 |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
112 ) |
335 | 113 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
114 def test_available_received_empty_statuses(self): |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
115 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
116 "presence_update", Const.JID_STR[0], "xa", 15, {}, Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
117 ) |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
118 self.presence.availableReceived(Const.JID[0], "xa", None, 15) |
335 | 119 |
120 def test_unavailableReceived(self): | |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
121 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
122 "presence_update", Const.JID_STR[0], "unavailable", 0, {}, Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
123 ) |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
124 self.presence.unavailableReceived(Const.JID[0], None) |
335 | 125 |
126 def test_subscribedReceived(self): | |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
127 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
128 "subscribe", "subscribed", Const.JID[0].userhost(), Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
129 ) |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
130 self.presence.subscribedReceived(Const.JID[0]) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
131 |
335 | 132 def test_unsubscribedReceived(self): |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
133 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
134 "subscribe", "unsubscribed", Const.JID[0].userhost(), Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
135 ) |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
136 self.presence.unsubscribedReceived(Const.JID[0]) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
137 |
335 | 138 def test_subscribeReceived(self): |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
139 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
140 "subscribe", "subscribe", Const.JID[0].userhost(), Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
141 ) |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
142 self.presence.subscribeReceived(Const.JID[0]) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
143 |
335 | 144 def test_unsubscribeReceived(self): |
4270
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
145 self.host.bridge.expect_call( |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
146 "subscribe", "unsubscribe", Const.JID[0].userhost(), Const.PROFILE[0] |
0d7bb4df2343
Reformatted code base using black.
Goffi <goffi@goffi.org>
parents:
4107
diff
changeset
|
147 ) |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
148 self.presence.unsubscribeReceived(Const.JID[0]) |