def test_Location_0(self): w = mocks.Window(cx([''])) self.assertEqual(list(w.view(0)), [(0, [((), '')])]) ui = mocks.UI() renderer = ttyfe.TTYRenderer(ui, 0, 24, w) l = ttyfe.Location(renderer, 0, 0) m = l.shift(100) self.assertEqual(l.cursor, m.cursor) self.assertEqual(l.offset, m.offset) m = l.shift(-100) self.assertEqual(l.cursor, m.cursor) self.assertEqual(l.offset, m.offset)
def test_Location_3(self): w = mocks.Window(cx(['abc\nabc\n', 'def\n', 'ghi\n', 'jkl'])) ui = mocks.UI() renderer = ttyfe.TTYRenderer(ui, 0, 24, w) l = ttyfe.Location(renderer, 0, 0) self.assertEqual(l.cursor, 0) self.assertEqual(l.offset, 0) m = l.shift(100) self.assertEqual(m.cursor, 3) self.assertEqual(l.offset, 0) m = l.shift(3) self.assertEqual(m.cursor, 2) self.assertEqual(l.offset, 0) m = m.shift(-3) self.assertEqual(l.cursor, m.cursor) self.assertEqual(l.offset, m.offset)
def test_chunksize(self): w = mocks.Window(cx(['abc\nabc\n', 'def\n', 'ghi\n', 'jkl'])) ui = mocks.UI(5) renderer = ttyfe.TTYRenderer(ui, 0, 24, w) doline = ttyfe.TTYRenderer.doline def _chunksize(chunk): # essentially chunksize classic return len(doline(''.join(c[1] for c in chunk), 24, 24)) self.assertEqual(renderer.chunksize([((), '')]), _chunksize([((), '')])) self.assertEqual(renderer.chunksize([((), 'one')]), _chunksize([((), 'one')])) self.assertEqual(renderer.chunksize([((), 'one\n')]), _chunksize([((), 'one\n')])) self.assertEqual(renderer.chunksize([((), 'one')]), 1) # is this doing what I think it's doing? self.assertEqual(renderer.chunksize([((), 'a'), ((), 'b')]), 1) self.assertEqual(renderer.chunksize([((), 'a'), ((), 'b\n')]), _chunksize([((), 'a'), ((), 'b\n')])) self.assertEqual(renderer.chunksize([((), 'a'), ((), 'b\n')]), 1) self.assertEqual( renderer.chunksize([((), 'a'), ((), 'b\n'), ((), 'c')]), _chunksize([((), 'a'), ((), 'b\n'), ((), 'c')])) self.assertEqual( renderer.chunksize([((), 'a'), ((), 'b\n'), ((), 'c')]), 2) # Okay, right text self.assertEqual(renderer.chunksize([((), 'a'), (('right'), 'b')]), 1) self.assertEqual(renderer.chunksize([((), 'a'), (('right'), 'b\n')]), 1) self.assertEqual( renderer.chunksize([((), 'a'), (('right'), 'b\n'), ((), 'c')]), 2) self.assertEqual( renderer.chunksize([((), 'a'), (('right'), 'b\n'), ((), 'c')]), 2) self.assertEqual(renderer.chunksize([((), 'aaaa'), ((''), 'bbbb')]), 2) self.assertEqual( renderer.chunksize([((), 'aaaa'), (('right'), 'bbbb')]), 2) self.assertEqual( renderer.chunksize([((), 'aaaa'), (('right'), 'bbbb\n')]), 2)
def test_redisplay_calculate(self): w = mocks.Window(cx(['abc\nabc\n', 'def\n', 'ghi\n', 'jkl'])) ui = mocks.UI() renderer = ttyfe.TTYRenderer(ui, 0, 6, w) ui.windows = [renderer] renderer.reframe() visible, cursor, sill, output = renderer.redisplay_calculate() self.assertEqual(len(output), 6) self.assertFalse(visible) self.assertIsNone(cursor) chunks = [[ (('visible', ), ''), (('bg:grey24', ), '00:58'), ((), ' filter default'), (('right', ), '2'), (('bg:grey24', 'bold'), 'n'), ((), 'ext'), ((), ' '), (('bg:grey24', 'bold'), 'p'), ((), 'revious'), ((), ' '), (('bg:grey24', 'bold'), '}'), ((), ' n. like'), ((), ' '), (('bg:grey24', 'bold'), '{'), ((), ' p. like'), ((), ' '), (('bg:grey24', 'bold'), ']'), ((), ' n. stark'), ((), ' '), (('bg:grey24', 'bold'), '['), ((), ' p. stark'), ((), ' '), (('bg:grey24', 'bold'), 'r'), ((), 'eply'), ((), ' '), (('bg:grey24', 'bold'), 'f'), ((), 'ollowup'), ((), ' '), (('bg:grey24', 'bold'), 's'), ((), 'end'), ((), ' '), (('bg:grey24', 'bold'), '/'), ((), ' filter…'), ((), ' '), (('bg:grey24', 'bold'), '^X^C'), ((), ' quit'), ((), ' '), (('bg:grey24', 'bold'), '?'), ((), ' help'), ((), '\n'), ]] w = mocks.Window(chunks) ui = mocks.UI(maxx=205) renderer = ttyfe.TTYRenderer(ui, 0, 2, w) ui.windows = [renderer] renderer.reframe() visible, cursor, sill, output = renderer.redisplay_calculate() self.assertEqual(len(output), 2) self.assertTrue(visible) self.assertIsNone(cursor) self.assertTrue(all(a & curses.A_UNDERLINE for (a, t) in output[-1])) renderer = ttyfe.TTYRenderer(ui, 0, 3, w) ui.windows = [renderer] renderer.reframe() visible, cursor, sill, output = renderer.redisplay_calculate() self.assertEqual(len(output), 3) self.assertTrue(visible) self.assertIsNone(cursor) self.assertTrue(all(a & curses.A_UNDERLINE for (a, t) in output[-1]))