1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# Copyright (c) 2005-2006 LOGILAB S.A. (Paris, FRANCE).
# Copyright (c) 2005-2006 CEA Grenoble
# http://www.logilab.fr/ -- mailto:contact@logilab.fr
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the CECILL license, available at
# http://www.inria.fr/valorisation/logiciels/Licence.CeCILL-V2.pdf
#
"""Test pyqonsole's session module.
"""
import unittest
import time
from utils import NullGui, NoScreenTC, register_logger, reset_logs
from qt import QApplication
from pyqonsole import session, emulation
class MySession(session.Session):
def emit(self, signal, args):
self._logs.append( (signal, args) )
session.Session.emit(self, signal, args)
def myemit(self, signal, args=()):
self._logs.append( (signal, args) )
session.Session.myemit(self, signal, args)
class SessionTC(NoScreenTC):
def setUp(self):
NoScreenTC.setUp(self)
self.session = MySession(NullGui(), 'echo', ['coucou'], 'xterm')
self.session._logs = []
register_logger(self.session)
def test_monitor_silence(self):
app = QApplication([])
session = self.session
session.SILENCE_TIMEOUT = 1 # 1 millisecond instead of 10000 to be quicker
self.failUnlessEqual(session.monitor_silence, False)
self.failUnlessEqual(session.monitor_timer.isActive(), False)
session.monitor_silence = True
self.failUnlessEqual(session.monitor_timer.isActive(), True)
time.sleep(2e-3) # 2 * SILENCE_TIMEOUT (in seconds)
app.processEvents()
self.failUnless(('notifySessionState', (emulation.NOTIFYSILENCE,)) in session._logs)
session.monitor_silence = False
self.failUnlessEqual(session.monitor_timer.isActive(), False)
app.quit()
def test_monitor_activity(self):
session = self.session
self.failUnlessEqual(session.monitor_activity, False)
session.notifySessionState(emulation.NOTIFYACTIVITY)
self.failUnlessEqual(session._logs, [])
session.monitor_activity = True
session.notifySessionState(emulation.NOTIFYACTIVITY)
self.failUnlessEqual(session._logs, [('notifySessionState', (2,))])
def test_keymap(self):
session = self.session
#self.failUnlessEqual(session.keymapNo(), 0)
self.failUnlessEqual(session.keymap().num, 0)
self.failUnlessEqual(session.keymap().id, 'default')
#session.setKeymapNo(0)
session.setKeymap('[buildin]')
def test_title(self):
session = self.session
session.setUserTitle(0, 'bonjour')
self.failUnlessEqual(session._logs, [('updateTitle', ())])
self.failUnlessEqual(session.title, '')
self.failUnlessEqual(session.user_title, 'bonjour')
self.failUnlessEqual(session.icon_text, 'bonjour')
self.failUnlessEqual(session.fullTitle(), 'bonjour - ')
reset_logs()
session.setUserTitle(1, 'hello')
self.failUnlessEqual(session._logs, [('updateTitle', ())])
self.failUnlessEqual(session.title, '')
self.failUnlessEqual(session.user_title, 'bonjour')
self.failUnlessEqual(session.icon_text, 'hello')
self.failUnlessEqual(session.fullTitle(), 'bonjour - ')
reset_logs()
session.setUserTitle(2, 'oYe')
self.failUnlessEqual(session._logs, [('updateTitle', ())])
self.failUnlessEqual(session.title, '')
self.failUnlessEqual(session.user_title, 'oYe')
self.failUnlessEqual(session.icon_text, 'hello')
self.failUnlessEqual(session.fullTitle(), 'oYe - ')
reset_logs()
def test_icon_name(self):
session = self.session
self.failUnlessEqual(session.testAndSetStateIconName('bonjour'), True)
self.failUnlessEqual(session.testAndSetStateIconName('bonjour'), False)
self.failUnlessEqual(session.state_icon_name, 'bonjour')
if __name__ == '__main__':
unittest.main()
|