def test_resolve_sequence(): "Test resolve_sequence for order-dependent mapping." from blessed.keyboard import resolve_sequence, OrderedDict mapper = OrderedDict(((u'SEQ1', 1), (u'SEQ2', 2), # takes precedence over LONGSEQ, first-match (u'KEY_LONGSEQ_longest', 3), (u'LONGSEQ', 4), # wont match, LONGSEQ is first-match in this order (u'LONGSEQ_longer', 5), # falls through for L{anything_else} (u'L', 6))) codes = {1: u'KEY_SEQ1', 2: u'KEY_SEQ2', 3: u'KEY_LONGSEQ_longest', 4: u'KEY_LONGSEQ', 5: u'KEY_LONGSEQ_longer', 6: u'KEY_L'} ks = resolve_sequence(u'', mapper, codes) assert ks == u'' assert ks.name is None assert ks.code is None assert ks.is_sequence is False assert repr(ks) in ("u''", # py26, 27 "''",) # py33 ks = resolve_sequence(u'notfound', mapper=mapper, codes=codes) assert ks == u'n' assert ks.name is None assert ks.code is None assert ks.is_sequence is False assert repr(ks) in (u"u'n'", "'n'",) ks = resolve_sequence(u'SEQ1', mapper, codes) assert ks == u'SEQ1' assert ks.name == u'KEY_SEQ1' assert ks.code is 1 assert ks.is_sequence is True assert repr(ks) in (u"KEY_SEQ1", "KEY_SEQ1") ks = resolve_sequence(u'LONGSEQ_longer', mapper, codes) assert ks == u'LONGSEQ' assert ks.name == u'KEY_LONGSEQ' assert ks.code is 4 assert ks.is_sequence is True assert repr(ks) in (u"KEY_LONGSEQ", "KEY_LONGSEQ") ks = resolve_sequence(u'LONGSEQ', mapper, codes) assert ks == u'LONGSEQ' assert ks.name == u'KEY_LONGSEQ' assert ks.code is 4 assert ks.is_sequence is True assert repr(ks) in (u"KEY_LONGSEQ", "KEY_LONGSEQ") ks = resolve_sequence(u'Lxxxxx', mapper, codes) assert ks == u'L' assert ks.name == u'KEY_L' assert ks.code is 6 assert ks.is_sequence is True assert repr(ks) in (u"KEY_L", "KEY_L")
def test_resolve_sequence(): "Test resolve_sequence for order-dependent mapping." from blessed.keyboard import resolve_sequence, OrderedDict mapper = OrderedDict(((u'SEQ1', 1), (u'SEQ2', 2), # takes precedence over LONGSEQ, first-match (u'KEY_LONGSEQ_longest', 3), (u'LONGSEQ', 4), # wont match, LONGSEQ is first-match in this order (u'LONGSEQ_longer', 5), # falls through for L{anything_else} (u'L', 6))) codes = {1: u'KEY_SEQ1', 2: u'KEY_SEQ2', 3: u'KEY_LONGSEQ_longest', 4: u'KEY_LONGSEQ', 5: u'KEY_LONGSEQ_longer', 6: u'KEY_L'} ks = resolve_sequence(u'', mapper, codes) assert ks == u'' assert ks.name is None assert ks.code == None assert not ks.is_sequence assert repr(ks) in ("u''", # py26, 27 "''",) # py33 ks = resolve_sequence(u'notfound', mapper=mapper, codes=codes) assert ks == u'n' assert ks.name is None assert ks.code is None assert not ks.is_sequence assert repr(ks) in (u"u'n'", "'n'",) ks = resolve_sequence(u'SEQ1', mapper, codes) assert ks == u'SEQ1' assert ks.name == u'KEY_SEQ1' assert ks.code == 1 assert ks.is_sequence assert repr(ks) in (u"KEY_SEQ1", "KEY_SEQ1") ks = resolve_sequence(u'LONGSEQ_longer', mapper, codes) assert ks == u'LONGSEQ' assert ks.name == u'KEY_LONGSEQ' assert ks.code == 4 assert ks.is_sequence assert repr(ks) in (u"KEY_LONGSEQ", "KEY_LONGSEQ") ks = resolve_sequence(u'LONGSEQ', mapper, codes) assert ks == u'LONGSEQ' assert ks.name == u'KEY_LONGSEQ' assert ks.code == 4 assert ks.is_sequence assert repr(ks) in (u"KEY_LONGSEQ", "KEY_LONGSEQ") ks = resolve_sequence(u'Lxxxxx', mapper, codes) assert ks == u'L' assert ks.name == u'KEY_L' assert ks.code == 6 assert ks.is_sequence assert repr(ks) in (u"KEY_L", "KEY_L")