|
2 | 2 |
|
3 | 3 | from prompt_toolkit.buffer import Buffer
|
4 | 4 |
|
5 |
| -import unittest |
| 5 | +import pytest |
6 | 6 |
|
7 | 7 |
|
8 |
| -class BufferTest(unittest.TestCase): |
9 |
| - def setUp(self): |
10 |
| - self.buffer = Buffer() |
| 8 | +@pytest.fixture |
| 9 | +def _buffer(): |
| 10 | + return Buffer() |
11 | 11 |
|
12 |
| - def test_initial(self): |
13 |
| - self.assertEqual(self.buffer.text, '') |
14 |
| - self.assertEqual(self.buffer.cursor_position, 0) |
15 | 12 |
|
16 |
| - def test_insert_text(self): |
17 |
| - self.buffer.insert_text('some_text') |
18 |
| - self.assertEqual(self.buffer.text, 'some_text') |
19 |
| - self.assertEqual(self.buffer.cursor_position, len('some_text')) |
| 13 | +def test_initial(_buffer): |
| 14 | + assert _buffer.text == '' |
| 15 | + assert _buffer.cursor_position == 0 |
20 | 16 |
|
21 |
| - def test_cursor_movement(self): |
22 |
| - self.buffer.insert_text('some_text') |
23 |
| - self.buffer.cursor_left() |
24 |
| - self.buffer.cursor_left() |
25 |
| - self.buffer.cursor_left() |
26 |
| - self.buffer.cursor_right() |
27 |
| - self.buffer.insert_text('A') |
28 | 17 |
|
29 |
| - self.assertEqual(self.buffer.text, 'some_teAxt') |
30 |
| - self.assertEqual(self.buffer.cursor_position, len('some_teA')) |
| 18 | +def test_insert_text(_buffer): |
| 19 | + _buffer.insert_text('some_text') |
| 20 | + assert _buffer.text == 'some_text' |
| 21 | + assert _buffer.cursor_position == len('some_text') |
31 | 22 |
|
32 |
| - def test_backspace(self): |
33 |
| - self.buffer.insert_text('some_text') |
34 |
| - self.buffer.cursor_left() |
35 |
| - self.buffer.cursor_left() |
36 |
| - self.buffer.delete_before_cursor() |
37 | 23 |
|
38 |
| - self.assertEqual(self.buffer.text, 'some_txt') |
39 |
| - self.assertEqual(self.buffer.cursor_position, len('some_t')) |
| 24 | +def test_cursor_movement(_buffer): |
| 25 | + _buffer.insert_text('some_text') |
| 26 | + _buffer.cursor_left() |
| 27 | + _buffer.cursor_left() |
| 28 | + _buffer.cursor_left() |
| 29 | + _buffer.cursor_right() |
| 30 | + _buffer.insert_text('A') |
40 | 31 |
|
41 |
| - def test_cursor_up(self): |
42 |
| - # Cursor up to a line thats longer. |
43 |
| - self.buffer.insert_text('long line1\nline2') |
44 |
| - self.buffer.cursor_up() |
| 32 | + assert _buffer.text == 'some_teAxt' |
| 33 | + assert _buffer.cursor_position == len('some_teA') |
45 | 34 |
|
46 |
| - self.assertEqual(self.buffer.document.cursor_position, 5) |
47 | 35 |
|
48 |
| - # Going up when already at the top. |
49 |
| - self.buffer.cursor_up() |
50 |
| - self.assertEqual(self.buffer.document.cursor_position, 5) |
| 36 | +def test_backspace(_buffer): |
| 37 | + _buffer.insert_text('some_text') |
| 38 | + _buffer.cursor_left() |
| 39 | + _buffer.cursor_left() |
| 40 | + _buffer.delete_before_cursor() |
51 | 41 |
|
52 |
| - # Going up to a line that's shorter. |
53 |
| - self.buffer.reset() |
54 |
| - self.buffer.insert_text('line1\nlong line2') |
| 42 | + assert _buffer.text == 'some_txt' |
| 43 | + assert _buffer.cursor_position == len('some_t') |
55 | 44 |
|
56 |
| - self.buffer.cursor_up() |
57 |
| - self.assertEqual(self.buffer.document.cursor_position, 5) |
58 | 45 |
|
59 |
| - def test_cursor_down(self): |
60 |
| - self.buffer.insert_text('line1\nline2') |
61 |
| - self.buffer.cursor_position = 3 |
| 46 | +def test_cursor_up(_buffer): |
| 47 | + # Cursor up to a line thats longer. |
| 48 | + _buffer.insert_text('long line1\nline2') |
| 49 | + _buffer.cursor_up() |
62 | 50 |
|
63 |
| - # Normally going down |
64 |
| - self.buffer.cursor_down() |
65 |
| - self.assertEqual(self.buffer.document.cursor_position, len('line1\nlin')) |
| 51 | + assert _buffer.document.cursor_position == 5 |
66 | 52 |
|
67 |
| - # Going down to a line that's storter. |
68 |
| - self.buffer.reset() |
69 |
| - self.buffer.insert_text('long line1\na\nb') |
70 |
| - self.buffer.cursor_position = 3 |
| 53 | + # Going up when already at the top. |
| 54 | + _buffer.cursor_up() |
| 55 | + assert _buffer.document.cursor_position == 5 |
71 | 56 |
|
72 |
| - self.buffer.cursor_down() |
73 |
| - self.assertEqual(self.buffer.document.cursor_position, len('long line1\na')) |
| 57 | + # Going up to a line that's shorter. |
| 58 | + _buffer.reset() |
| 59 | + _buffer.insert_text('line1\nlong line2') |
74 | 60 |
|
75 |
| - def test_join_next_line(self): |
76 |
| - self.buffer.insert_text('line1\nline2\nline3') |
77 |
| - self.buffer.cursor_up() |
78 |
| - self.buffer.join_next_line() |
| 61 | + _buffer.cursor_up() |
| 62 | + assert _buffer.document.cursor_position == 5 |
79 | 63 |
|
80 |
| - self.assertEqual(self.buffer.text, 'line1\nline2 line3') |
81 | 64 |
|
82 |
| - # Test when there is no '\n' in the text |
83 |
| - self.buffer.reset() |
84 |
| - self.buffer.insert_text('line1') |
85 |
| - self.buffer.cursor_position = 0 |
86 |
| - self.buffer.join_next_line() |
| 65 | +def test_cursor_down(_buffer): |
| 66 | + _buffer.insert_text('line1\nline2') |
| 67 | + _buffer.cursor_position = 3 |
87 | 68 |
|
88 |
| - self.assertEqual(self.buffer.text, 'line1') |
| 69 | + # Normally going down |
| 70 | + _buffer.cursor_down() |
| 71 | + assert _buffer.document.cursor_position == len('line1\nlin') |
89 | 72 |
|
90 |
| - def test_newline(self): |
91 |
| - self.buffer.insert_text('hello world') |
92 |
| - self.buffer.newline() |
| 73 | + # Going down to a line that's storter. |
| 74 | + _buffer.reset() |
| 75 | + _buffer.insert_text('long line1\na\nb') |
| 76 | + _buffer.cursor_position = 3 |
93 | 77 |
|
94 |
| - self.assertEqual(self.buffer.text, 'hello world\n') |
| 78 | + _buffer.cursor_down() |
| 79 | + assert _buffer.document.cursor_position == len('long line1\na') |
95 | 80 |
|
96 |
| - def test_swap_characters_before_cursor(self): |
97 |
| - self.buffer.insert_text('hello world') |
98 |
| - self.buffer.cursor_left() |
99 |
| - self.buffer.cursor_left() |
100 |
| - self.buffer.swap_characters_before_cursor() |
101 | 81 |
|
102 |
| - self.assertEqual(self.buffer.text, 'hello wrold') |
| 82 | +def test_join_next_line(_buffer): |
| 83 | + _buffer.insert_text('line1\nline2\nline3') |
| 84 | + _buffer.cursor_up() |
| 85 | + _buffer.join_next_line() |
| 86 | + |
| 87 | + assert _buffer.text == 'line1\nline2 line3' |
| 88 | + |
| 89 | + # Test when there is no '\n' in the text |
| 90 | + _buffer.reset() |
| 91 | + _buffer.insert_text('line1') |
| 92 | + _buffer.cursor_position = 0 |
| 93 | + _buffer.join_next_line() |
| 94 | + |
| 95 | + assert _buffer.text == 'line1' |
| 96 | + |
| 97 | + |
| 98 | +def test_newline(_buffer): |
| 99 | + _buffer.insert_text('hello world') |
| 100 | + _buffer.newline() |
| 101 | + |
| 102 | + assert _buffer.text == 'hello world\n' |
| 103 | + |
| 104 | + |
| 105 | +def test_swap_characters_before_cursor(_buffer): |
| 106 | + _buffer.insert_text('hello world') |
| 107 | + _buffer.cursor_left() |
| 108 | + _buffer.cursor_left() |
| 109 | + _buffer.swap_characters_before_cursor() |
| 110 | + |
| 111 | + assert _buffer.text == 'hello wrold' |
0 commit comments