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
|
import pymol
from pymol import cmd, testing, stored
foos = ['foo']
ba_s = ['bar', 'baz']
coms = ['com', 'com_bla', 'com_xxx']
words = foos + ba_s + coms
class TestShortcut(testing.PyMOLTestCase):
def testShortcut(self):
# build shortcut
sc = cmd.Shortcut(words)
# get all keywords
self.assertItemsEqual(words, sc.interpret(''))
# full/prefix hits
self.assertEqual('foo', sc.interpret('f'))
self.assertEqual('foo', sc.interpret('fo'))
self.assertEqual('foo', sc.interpret('foo'))
self.assertItemsEqual(ba_s, sc.interpret('b'))
self.assertItemsEqual(ba_s, sc.interpret('ba'))
self.assertEqual('bar', sc.interpret('bar'))
self.assertItemsEqual(coms, sc.interpret('c'))
self.assertItemsEqual(coms, sc.interpret('co'))
self.assertEqual('com', sc.interpret('com'))
# add one
sc.append('foo_new')
self.assertItemsEqual(['foo', 'foo_new'], sc.interpret('f'))
self.assertEqual('foo', sc.interpret('foo'))
self.assertEqual('foo_new', sc.interpret('foo_'))
self.assertEqual(False, sc.has_key(''))
# abbreviations
self.assertEqual('foo_new', sc.interpret('f_'))
self.assertEqual('foo_new', sc.interpret('f_new'))
self.assertEqual('foo_new', sc.interpret('fo_'))
self.assertEqual('com_xxx', sc.interpret('c_x'))
self.assertEqual('com_xxx', sc.interpret('c_xxx'))
self.assertEqual('com_xxx', sc.interpret('co_x'))
# missing key
self.assertEqual(None, sc.interpret('missing_key'))
# auto error
self.assertEqual(None, sc.auto_err(''))
self.assertEqual(None, sc.auto_err('missing_key'))
self.assertItemsEqual(coms, sc.auto_err('co'))
self.assertEqual('com', sc.auto_err('com'))
def testShortcutMode1(self):
# build shortcut
sc = cmd.Shortcut(words)
# full/prefix hits
self.assertEqual('foo', sc.interpret('f', 1))
self.assertItemsEqual(coms, sc.interpret('com', 1))
# add one
sc.append('foo_new')
self.assertItemsEqual(['foo', 'foo_new'], sc.interpret('foo', 1))
def testShortcutRebuild(self):
sc = cmd.Shortcut(words)
sc.rebuild(coms)
self.assertEqual(None, sc.interpret('f'))
self.assertEqual(None, sc.interpret('foo'))
self.assertItemsEqual(coms, sc.interpret('c'))
self.assertItemsEqual(coms, sc.interpret('com', 1))
self.assertEqual('com', sc.interpret('com'))
self.assertEqual('com_xxx', sc.interpret('c_x'))
|