test_layout.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from __future__ import unicode_literals
  2. from prompt_toolkit.layout.utils import split_lines
  3. from prompt_toolkit.token import Token
  4. def test_split_lines():
  5. lines = list(split_lines([(Token.A, 'line1\nline2\nline3')]))
  6. assert lines == [
  7. [(Token.A, 'line1')],
  8. [(Token.A, 'line2')],
  9. [(Token.A, 'line3')],
  10. ]
  11. def test_split_lines_2():
  12. lines = list(split_lines([
  13. (Token.A, 'line1'),
  14. (Token.B, 'line2\nline3\nline4')
  15. ]))
  16. assert lines == [
  17. [(Token.A, 'line1'), (Token.B, 'line2')],
  18. [(Token.B, 'line3')],
  19. [(Token.B, 'line4')],
  20. ]
  21. def test_split_lines_3():
  22. " Edge cases: inputs ending with newlines. "
  23. # -1-
  24. lines = list(split_lines([
  25. (Token.A, 'line1\nline2\n')
  26. ]))
  27. assert lines == [
  28. [(Token.A, 'line1')],
  29. [(Token.A, 'line2')],
  30. [(Token.A, '')],
  31. ]
  32. # -2-
  33. lines = list(split_lines([
  34. (Token.A, '\n'),
  35. ]))
  36. assert lines == [
  37. [],
  38. [(Token.A, '')],
  39. ]
  40. # -3-
  41. lines = list(split_lines([
  42. (Token.A, ''),
  43. ]))
  44. assert lines == [
  45. [(Token.A, '')],
  46. ]