Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/gajim_mocks.py')
-rw-r--r--test/lib/gajim_mocks.py147
1 files changed, 147 insertions, 0 deletions
diff --git a/test/lib/gajim_mocks.py b/test/lib/gajim_mocks.py
new file mode 100644
index 000000000..44b18f037
--- /dev/null
+++ b/test/lib/gajim_mocks.py
@@ -0,0 +1,147 @@
+'''
+Module with dummy classes for Gajim specific unit testing
+'''
+
+from mock import Mock
+from common import gajim
+
+from common.connection_handlers import ConnectionHandlersBase
+
+class MockConnection(Mock, ConnectionHandlersBase):
+ def __init__(self, account, *args):
+ Mock.__init__(self, *args)
+ ConnectionHandlersBase.__init__(self)
+
+ self.name = account
+ self.connected = 2
+ self.mood = {}
+ self.activity = {}
+ self.tune = {}
+ self.blocked_contacts = {}
+ self.blocked_groups = {}
+ self.sessions = {}
+
+ gajim.interface.instances[account] = {'infos': {}, 'disco': {},
+ 'gc_config': {}, 'search': {}}
+ gajim.interface.minimized_controls[account] = {}
+ gajim.contacts.add_account(account)
+ gajim.groups[account] = {}
+ gajim.gc_connected[account] = {}
+ gajim.automatic_rooms[account] = {}
+ gajim.newly_added[account] = []
+ gajim.to_be_removed[account] = []
+ gajim.nicks[account] = gajim.config.get_per('accounts', account, 'name')
+ gajim.block_signed_in_notifications[account] = True
+ gajim.sleeper_state[account] = 0
+ gajim.encrypted_chats[account] = []
+ gajim.last_message_time[account] = {}
+ gajim.status_before_autoaway[account] = ''
+ gajim.transport_avatar[account] = {}
+ gajim.gajim_optional_features[account] = []
+ gajim.caps_hash[account] = ''
+
+ gajim.connections[account] = self
+
+class MockWindow(Mock):
+ def __init__(self, *args):
+ Mock.__init__(self, *args)
+ self.window = Mock()
+ self._controls = {}
+
+ def get_control(self, jid, account):
+ try:
+ return self._controls[account][jid]
+ except KeyError:
+ return None
+
+ def has_control(self, jid, acct):
+ return self.get_control(jid, acct) is not None
+
+ def new_tab(self, ctrl):
+ account = ctrl.account
+ jid = ctrl.jid
+
+ if account not in self._controls:
+ self._controls[account] = {}
+
+ if jid not in self._controls[account]:
+ self._controls[account][jid] = {}
+
+ self._controls[account][jid] = ctrl
+
+ def __nonzero__(self):
+ return True
+
+class MockChatControl(Mock):
+ def __init__(self, jid, account, *args):
+ Mock.__init__(self, *args)
+
+ self.jid = jid
+ self.account = account
+
+ self.parent_win = MockWindow({'get_active_control': self})
+ self.session = None
+
+ def set_session(self, sess):
+ self.session = sess
+
+ def __nonzero__(self):
+ return True
+
+ def __eq__(self, other):
+ return self is other
+
+class MockInterface(Mock):
+ def __init__(self, *args):
+ Mock.__init__(self, *args)
+ gajim.interface = self
+ self.msg_win_mgr = Mock()
+ self.roster = Mock()
+
+ self.remote_ctrl = None
+ self.instances = {}
+ self.minimized_controls = {}
+ self.status_sent_to_users = Mock()
+
+ if gajim.use_x:
+ self.jabber_state_images = {'16': {}, '32': {}, 'opened': {},
+ 'closed': {}}
+
+ import gtkgui_helpers
+ gtkgui_helpers.make_jabber_state_images()
+ else:
+ self.jabber_state_images = {'16': Mock(), '32': Mock(),
+ 'opened': Mock(), 'closed': Mock()}
+
+class MockLogger(Mock):
+ def __init__(self):
+ Mock.__init__(self, {'write': None, 'get_transports_type': {}})
+
+class MockContact(Mock):
+ def __nonzero__(self):
+ return True
+
+import random
+
+class MockSession(Mock):
+ def __init__(self, conn, jid, thread_id, type_):
+ Mock.__init__(self)
+
+ self.conn = conn
+ self.jid = jid
+ self.type = type_
+ self.thread_id = thread_id
+
+ if not self.thread_id:
+ self.thread_id = '%0x' % random.randint(0, 10000)
+
+ def __repr__(self):
+ return '<MockSession %s>' % self.thread_id
+
+ def __nonzero__(self):
+ return True
+
+ def __eq__(self, other):
+ return self is other
+
+# vim: se ts=3: