Mercurial > libervia-backend
annotate src/test/helpers.py @ 1077:387bbc459d8f
plugin XEP-0050: handle note element in command answer
author | souliane <souliane@mailoo.org> |
---|---|
date | Wed, 18 Jun 2014 14:52:52 +0200 |
parents | 6e975c6b0faf |
children | 020e663bc286 |
rev | line source |
---|---|
335 | 1 #!/usr/bin/python |
2 # -*- coding: utf-8 -*- | |
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 |
811 | 5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 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 |
998
f5761534e0f3
tests: fixed log init in helpers (log init must be done before any call to a log method)
Goffi <goffi@goffi.org>
parents:
997
diff
changeset
|
20 |
f5761534e0f3
tests: fixed log init in helpers (log init must be done before any call to a log method)
Goffi <goffi@goffi.org>
parents:
997
diff
changeset
|
21 ## logging configuration for tests ## |
1022
002ee8397208
test: fix the tests after the changes of logging system
souliane <souliane@mailoo.org>
parents:
999
diff
changeset
|
22 from sat.core import log_config |
002ee8397208
test: fix the tests after the changes of logging system
souliane <souliane@mailoo.org>
parents:
999
diff
changeset
|
23 log_config.satConfigure() |
998
f5761534e0f3
tests: fixed log init in helpers (log init must be done before any call to a log method)
Goffi <goffi@goffi.org>
parents:
997
diff
changeset
|
24 |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
25 from sat.core import exceptions |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
26 from constants import Const |
649 | 27 from wokkel.xmppim import RosterItem |
28 from sat.core.xmpp import SatRosterProtocol | |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
29 from sat.memory.memory import Params, Memory |
647
63b6e684bbfa
tests: Use of FailTest for DifferentArgsException instead of Exception, so the test fail instead of raising en error.
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
30 from twisted.trial.unittest import FailTest |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
31 from twisted.trial import unittest |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
32 from twisted.internet import defer |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
33 from twisted.words.protocols.jabber.jid import JID |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
34 from xml.etree import cElementTree as etree |
789
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
35 from collections import Counter |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
36 import re |
335 | 37 |
38 | |
649 | 39 def b2s(value): |
40 """Convert a bool to a unicode string used in bridge | |
41 @param value: boolean value | |
42 @return: unicode conversion, according to bridge convention | |
43 | |
44 """ | |
45 return u"True" if value else u"False" | |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
46 |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
47 |
647
63b6e684bbfa
tests: Use of FailTest for DifferentArgsException instead of Exception, so the test fail instead of raising en error.
Goffi <goffi@goffi.org>
parents:
609
diff
changeset
|
48 class DifferentArgsException(FailTest): |
335 | 49 pass |
50 | |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
51 |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
52 class DifferentXMLException(FailTest): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
53 pass |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
54 |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
55 |
789
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
56 class DifferentListException(FailTest): |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
57 pass |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
58 |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
59 |
335 | 60 class FakeSAT(object): |
61 """Class to simulate a SAT instance""" | |
62 | |
63 def __init__(self): | |
64 self.bridge = FakeBridge() | |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
65 self.memory = FakeMemory(self) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
66 self.trigger = FakeTriggerManager() |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
67 self.init() |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
68 |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
69 def init(self): |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
70 """This can be called by tests that check for sent and stored messages, |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
71 uses FakeClient or get/set some other data that need to be cleaned""" |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
72 self.sent_messages = [] |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
73 self.stored_messages = [] |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
74 self.plugins = {} |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
75 self.profiles = {} |
335 | 76 |
649 | 77 def delContact(self, to, profile_key): |
78 #TODO | |
79 pass | |
80 | |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
81 def registerCallback(self, callback, *args, **kwargs): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
82 pass |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
83 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
84 def sendMessage(self, to_s, msg, subject=None, mess_type='auto', extra={}, profile_key='@NONE@'): |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
85 self.sendAndStoreMessage({"to": JID(to_s)}) |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
86 |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
87 def sendAndStoreMessage(self, mess_data, skip_send=False, profile=None): |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
88 """Save the information to check later to whom messages have been sent and |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
89 if entries have been added to the history""" |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
90 if not skip_send: |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
91 self.sent_messages.append(mess_data["to"]) |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
92 self.stored_messages.append(mess_data["to"]) |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
93 |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
94 def getClient(self, profile_key): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
95 """Convenient method to get client from profile key |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
96 @return: client or None if it doesn't exist""" |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
97 profile = self.memory.getProfileName(profile_key) |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
98 if not profile: |
941
c6d8fc63b1db
core, plugins: host.getClient now raise an exception instead of returning None when no profile is found, plugins have been adapted consequently and a bit cleaned
Goffi <goffi@goffi.org>
parents:
859
diff
changeset
|
99 raise exceptions.ProfileKeyUnknownError |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
100 if profile not in self.profiles: |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
101 self.profiles[profile] = FakeClient(self, profile) |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
102 return self.profiles[profile] |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
103 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
104 def getJidNStream(self, profile_key): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
105 """Convenient method to get jid and stream from profile key |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
106 @return: tuple (jid, xmlstream) from profile, can be None""" |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
107 return (Const.PROFILE_DICT[profile_key], None) |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
108 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
109 def isConnected(self, profile): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
110 return True |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
111 |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
112 def getSentMessageRaw(self, profile_index): |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
113 """Pop and return the sent message in first position (works like a FIFO). |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
114 Called by tests. FakeClient instances associated to each profile must have |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
115 been previously initialized with the method FakeSAT.getClient. |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
116 @return: the sent message for given profile, or None""" |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
117 try: |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
118 return self.profiles[Const.PROFILE[profile_index]].xmlstream.sent.pop(0) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
119 except IndexError: |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
120 return None |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
121 |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
122 def getSentMessage(self, profile_index): |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
123 """Pop and return the sent message in first position (works like a FIFO). |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
124 Called by tests. FakeClient instances associated to each profile must have |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
125 been previously initialized with the method FakeSAT.getClient. |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
126 @return: XML representation of the sent message for given profile, or None""" |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
127 entry = self.getSentMessageRaw(profile_index) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
128 return entry.toXml() if entry else None |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
129 |
999
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
130 def findFeaturesSet(self, features, category=None, type_=None, jid_=None, profile_key=None): |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
131 """Call self.addFeature from your tests to change the return value. |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
132 |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
133 @return: a set of entities |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
134 """ |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
135 client = self.getClient(profile_key) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
136 if jid_ is None: |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
137 jid_ = JID(client.jid.host) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
138 try: |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
139 if set(features).issubset(client.features[jid_]): |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
140 return defer.succeed(set([jid_])) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
141 except (TypeError, AttributeError, KeyError): |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
142 pass |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
143 return defer.succeed(set()) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
144 |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
145 def addFeature(self, jid_, feature, profile_key): |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
146 """Add a feature to an entity. |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
147 |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
148 To be called from your tests when needed. |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
149 """ |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
150 client = self.getClient(profile_key) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
151 if not hasattr(client, 'features'): |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
152 client.features = {} |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
153 if jid_ not in client.features: |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
154 client.features[jid_] = set() |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
155 client.features[jid_].add(feature) |
c37a24922f27
plugin XEP_0033: fixes the server part and the tests
souliane <souliane@mailoo.org>
parents:
998
diff
changeset
|
156 |
335 | 157 |
158 class FakeBridge(object): | |
159 """Class to simulate and test bridge calls""" | |
160 | |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
161 def __init__(self): |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
162 self.expected_calls = {} |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
163 |
335 | 164 def expectCall(self, name, *check_args, **check_kwargs): |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
165 if hasattr(self, name): # queue this new call as one already exists |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
166 self.expected_calls.setdefault(name, []) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
167 self.expected_calls[name].append((check_args, check_kwargs)) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
168 return |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
169 |
335 | 170 def checkCall(*args, **kwargs): |
171 if args != check_args or kwargs != check_kwargs: | |
172 print "\n\n--------------------" | |
173 print "Args are not equals:" | |
174 print "args\n----\n%s (sent)\n%s (wanted)" % (args, check_args) | |
175 print "kwargs\n------\n%s (sent)\n%s (wanted)" % (kwargs, check_kwargs) | |
176 print "--------------------\n\n" | |
177 raise DifferentArgsException | |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
178 delattr(self, name) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
179 |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
180 if name in self.expected_calls: # register the next call |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
181 args, kwargs = self.expected_calls[name].pop(0) |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
182 if len(self.expected_calls[name]) == 0: |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
183 del self.expected_calls[name] |
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
184 self.expectCall(name, *args, **kwargs) |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
185 |
335 | 186 setattr(self, name, checkCall) |
187 | |
859
64ec04991d9d
plugin XEP-0277: fix pubsub entry parsing using lxml instead of feed.atom
souliane <souliane@mailoo.org>
parents:
849
diff
changeset
|
188 def addMethod(self, name, int_suffix, in_sign, out_sign, method, async=False, doc=None): |
694
4284b6ad8aa3
tests: plugin text syntaxes sanitisation tests
Goffi <goffi@goffi.org>
parents:
693
diff
changeset
|
189 pass |
335 | 190 |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
191 def addSignal(self, name, int_suffix, signature): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
192 pass |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
193 |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
194 def addTestCallback(self, name, method): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
195 """This can be used to register callbacks for bridge methods AND signals. |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
196 Contrary to expectCall, this will not check if the method or signal is |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
197 called/sent with the correct arguments, it will instead run the callback |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
198 of your choice.""" |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
199 setattr(self, name, method) |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
200 |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
201 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
202 class FakeParams(Params): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
203 """Class to simulate and test params object. The methods of Params that could |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
204 not be run (for example those using the storage attribute must be overwritten |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
205 by a naive simulation of what they should do.""" |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
206 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
207 def __init__(self, host, storage): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
208 Params.__init__(self, host, storage) |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
209 self.params = {} # naive simulation of values storage |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
210 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
211 def setParam(self, name, value, category, security_limit=-1, profile_key='@NONE@'): |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
212 profile = self.getProfileName(profile_key) |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
213 self.params.setdefault(profile, {}) |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
214 self.params[profile_key][(category, name)] = value |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
215 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
216 def getParamA(self, name, category, attr="value", profile_key='@NONE@'): |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
217 profile = self.getProfileName(profile_key) |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
218 return self.params[profile][(category, name)] |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
219 |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
220 def getProfileName(self, profile_key, return_profile_keys=False): |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
221 if profile_key == '@DEFAULT@': |
792
2136be5a44a8
test: define the constants JIDs and profiles as lists
souliane <souliane@mailoo.org>
parents:
789
diff
changeset
|
222 return Const.PROFILE[0] |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
223 elif profile_key == '@NONE@': |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
224 raise exceptions.ProfileNotSetError |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
225 else: |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
226 return profile_key |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
227 |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
228 def loadIndParams(self, profile, cache=None): |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
229 self.params[profile] = {} |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
230 return defer.succeed(None) |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
231 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
232 |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
233 class FakeMemory(Memory): |
335 | 234 """Class to simulate and test memory object""" |
235 | |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
236 def __init__(self, host): |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
237 # do not call Memory.__init__, we just want to call the methods that are |
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
238 # manipulating basic stuff, the others should be overwritten when needed |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
239 self.host = host |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
240 self.params = FakeParams(host, None) |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
241 self.config = self.parseMainConf() |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
242 self.init() |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
243 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
244 def init(self): |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
245 """Tests that manipulate params, entities, features should |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
246 re-initialise the memory first to not fake the result.""" |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
247 self.params.load_default_params() |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
248 self.params.params.clear() |
833
9bac2fc74968
memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents:
829
diff
changeset
|
249 self.params.frontends_cache = [] |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
250 self.entities_data = {} |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
251 |
782
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
252 def getProfileName(self, profile_key, return_profile_keys=False): |
0e5807193721
test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
781
diff
changeset
|
253 return self.params.getProfileName(profile_key, return_profile_keys) |
335 | 254 |
669
ffb716804580
core, bridge: extra parameter is saved in history:
Goffi <goffi@goffi.org>
parents:
649
diff
changeset
|
255 def addToHistory(self, from_jid, to_jid, message, _type='chat', extra=None, timestamp=None, profile="@NONE@"): |
335 | 256 pass |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
257 |
335 | 258 def addContact(self, contact_jid, attributes, groups, profile_key='@DEFAULT@'): |
259 pass | |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
260 |
484
23cbdf0a0777
core: presence status + last resource refactored and kept in entitiesCache in memory.py, profile cache is purged on disconnection
Goffi <goffi@goffi.org>
parents:
480
diff
changeset
|
261 def setPresenceStatus(self, contact_jid, show, priority, statuses, profile_key='@DEFAULT@'): |
335 | 262 pass |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
263 |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
264 def addWaitingSub(self, type_, contact_jid, profile_key): |
335 | 265 pass |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
266 |
335 | 267 def delWaitingSub(self, contact_jid, profile_key): |
268 pass | |
269 | |
781
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
270 def updateEntityData(self, entity_jid, key, value, profile_key): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
271 self.entities_data.setdefault(entity_jid, {}) |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
272 self.entities_data[entity_jid][key] = value |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
273 |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
274 def getEntityData(self, entity_jid, keys, profile_key): |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
275 result = {} |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
276 for key in keys: |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
277 result[key] = self.entities_data[entity_jid][key] |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
278 return result |
80ab2b58e205
test: added support of basic memory stuff in helpers.py
souliane <souliane@mailoo.org>
parents:
780
diff
changeset
|
279 |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
280 |
335 | 281 class FakeTriggerManager(object): |
282 | |
786
c3acc1298a2f
test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents:
782
diff
changeset
|
283 def add(self, point_name, callback, priority=0): |
335 | 284 pass |
587
952322b1d490
Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
572
diff
changeset
|
285 |
335 | 286 def point(self, point_name, *args, **kwargs): |
287 """We always return true to continue the action""" | |
288 return True | |
289 | |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
290 |
649 | 291 class FakeRosterProtocol(SatRosterProtocol): |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
292 """This class is used by FakeClient (one instance per profile)""" |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
293 |
649 | 294 def __init__(self, host, parent): |
295 SatRosterProtocol.__init__(self, host) | |
296 self.parent = parent | |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
297 self.addItem(parent.jid) |
649 | 298 |
299 def addItem(self, jid, *args, **kwargs): | |
300 if not args and not kwargs: | |
301 # defaults values setted for the tests only | |
302 kwargs["subscriptionTo"] = True | |
303 kwargs["subscriptionFrom"] = True | |
304 roster_item = RosterItem(jid, *args, **kwargs) | |
305 attrs = {'to': b2s(roster_item.subscriptionTo), 'from': b2s(roster_item.subscriptionFrom), 'ask': b2s(roster_item.pendingOut)} | |
306 if roster_item.name: | |
307 attrs['name'] = roster_item.name | |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
308 self.host.bridge.expectCall("newContact", jid.full(), attrs, roster_item.groups, self.parent.profile) |
649 | 309 self.onRosterSet(roster_item) |
310 | |
311 | |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
312 class FakeXmlStream(object): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
313 """This class is used by FakeClient (one instance per profile)""" |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
314 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
315 def __init__(self): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
316 self.sent = [] |
649 | 317 |
318 def send(self, obj): | |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
319 """Save the sent messages to compare them later""" |
829
187d2443c82d
test: improvements for the helpers classes:
souliane <souliane@mailoo.org>
parents:
811
diff
changeset
|
320 self.sent.append(obj) |
849
c5a8f602662b
plugin room_game, radiocol: RoomGame.send returns a Deferred.
souliane <souliane@mailoo.org>
parents:
833
diff
changeset
|
321 return defer.succeed(None) |
794
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
322 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
323 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
324 class FakeClient(object): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
325 """Tests involving more than one profile need one instance of this class per profile""" |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
326 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
327 def __init__(self, host, profile=None): |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
328 self.host = host |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
329 self.profile = profile if profile else Const.PROFILE[0] |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
330 self.jid = Const.PROFILE_DICT[self.profile] |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
331 self.roster = FakeRosterProtocol(host, self) |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
332 self.xmlstream = FakeXmlStream() |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
333 |
52c4b755aba6
test: make FakeClient profile dependent and add some tools to test MUC
souliane <souliane@mailoo.org>
parents:
792
diff
changeset
|
334 def send(self, obj): |
849
c5a8f602662b
plugin room_game, radiocol: RoomGame.send returns a Deferred.
souliane <souliane@mailoo.org>
parents:
833
diff
changeset
|
335 return self.xmlstream.send(obj) |
335 | 336 |
591
65821b3fa7ab
Fix pep8 support in src/test.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
587
diff
changeset
|
337 |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
338 class SatTestCase(unittest.TestCase): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
339 |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
340 def assertEqualXML(self, xml, expected, ignore_blank=False): |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
341 def equalElt(got_elt, exp_elt): |
696
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
342 if ignore_blank: |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
343 for elt in got_elt, exp_elt: |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
344 for attr in ('text', 'tail'): |
696
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
345 value = getattr(elt, attr) |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
346 try: |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
347 value = value.strip() or None |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
348 except AttributeError: |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
349 value = None |
f1a2831d549d
test: better ignore_blank in helpers's assertEqualXML
Goffi <goffi@goffi.org>
parents:
694
diff
changeset
|
350 setattr(elt, attr, value) |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
351 if (got_elt.tag != exp_elt.tag): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
352 print "XML are not equals (elt %s/%s):" % (got_elt, exp_elt) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
353 print "tag: got [%s] expected: [%s]" % (got_elt.tag, exp_elt.tag) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
354 return False |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
355 if (got_elt.attrib != exp_elt.attrib): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
356 print "XML are not equals (elt %s/%s):" % (got_elt, exp_elt) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
357 print "attribs: got %s expected %s" % (got_elt.attrib, exp_elt.attrib) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
358 return False |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
359 if (got_elt.tail != exp_elt.tail or got_elt.text != exp_elt.text): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
360 print "XML are not equals (elt %s/%s):" % (got_elt, exp_elt) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
361 print "text: got [%s] expected: [%s]" % (got_elt.text, exp_elt.text) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
362 print "tail: got [%s] expected: [%s]" % (got_elt.tail, exp_elt.tail) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
363 return False |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
364 if (len(got_elt) != len(exp_elt)): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
365 print "XML are not equals (elt %s/%s):" % (got_elt, exp_elt) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
366 print "children len: got %d expected: %d" % (len(got_elt), len(exp_elt)) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
367 return False |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
368 for idx, child in enumerate(got_elt): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
369 if not equalElt(child, exp_elt[idx]): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
370 return False |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
371 return True |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
372 |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
373 def remove_blank(xml): |
780
9810f22ba733
test: store the constants in constants.py + better PEP8 compliance
souliane <souliane@mailoo.org>
parents:
771
diff
changeset
|
374 lines = [line.strip() for line in re.sub(r'[ \t\r\f\v]+', ' ', xml).split('\n')] |
693
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
375 return '\n'.join([line for line in lines if line]) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
376 |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
377 xml_elt = etree.fromstring(remove_blank(xml) if ignore_blank else xml) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
378 expected_elt = etree.fromstring(remove_blank(expected) if ignore_blank else expected) |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
379 |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
380 if not equalElt(xml_elt, expected_elt): |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
381 print "---" |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
382 print "XML are not equals:" |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
383 print "got:\n-\n%s\n-\n\n" % etree.tostring(xml_elt, encoding='utf-8') |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
384 print "was expecting:\n-\n%s\n-\n\n" % etree.tostring(expected_elt, encoding='utf-8') |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
385 print "---" |
65b30bc7f1b3
tests: added XML comparaison method to helpers
Goffi <goffi@goffi.org>
parents:
669
diff
changeset
|
386 raise DifferentXMLException |
789
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
387 |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
388 def assertEqualUnsortedList(self, a, b, msg): |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
389 counter_a = Counter(a) |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
390 counter_b = Counter(b) |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
391 if counter_a != counter_b: |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
392 print "---" |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
393 print "Unsorted lists are not equals:" |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
394 print "got : %s" % counter_a |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
395 print "was expecting: %s" % counter_b |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
396 if msg: |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
397 print msg |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
398 print "---" |
0cb423500fbb
test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents:
786
diff
changeset
|
399 raise DifferentListException |