1# Copyright (c) 2009 Twisted Matrix Laboratories. 2""" 3Tests for GTK2 GUI manhole. 4""" 5 6skip = False 7 8try: 9 import pygtk 10 pygtk.require("2.0") 11except: 12 skip = "GTK 2.0 not available" 13else: 14 try: 15 import gtk 16 except ImportError: 17 skip = "GTK 2.0 not available" 18 except RuntimeError: 19 skip = "Old version of GTK 2.0 requires DISPLAY, and we don't have one." 20 else: 21 if gtk.gtk_version[0] == 1: 22 skip = "Requested GTK 2.0, but 1.0 was already imported." 23 else: 24 from twisted.manhole.ui.gtk2manhole import ConsoleInput 25 26from twisted.trial.unittest import TestCase 27 28from twisted.python.reflect import prefixedMethodNames 29 30class ConsoleInputTests(TestCase): 31 """ 32 Tests for L{ConsoleInput}. 33 """ 34 35 def test_reverseKeymap(self): 36 """ 37 Verify that a L{ConsoleInput} has a reverse mapping of the keysym names 38 it needs for event handling to their corresponding keysym. 39 """ 40 ci = ConsoleInput(None) 41 for eventName in prefixedMethodNames(ConsoleInput, 'key_'): 42 keysymName = eventName.split("_")[-1] 43 keysymValue = getattr(gtk.keysyms, keysymName) 44 self.assertEqual(ci.rkeymap[keysymValue], keysymName) 45 46 47 skip = skip 48 49