Skip to content

Commit a4aca49

Browse files
committed
Unittesting repl.py
1 parent 5f36841 commit a4aca49

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

bpython/repl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def append(self, line):
161161
def first(self):
162162
"""Move back to the beginning of the history."""
163163
if not self.is_at_end:
164-
self.index = len(self.entries) - 1
164+
self.index = len(self.entries)
165165
return self.entries[-self.index]
166166

167167
def back(self):

bpython/test/test_repl.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env python
2+
import unittest
3+
from bpython import repl
4+
5+
6+
class TestHistory(unittest.TestCase):
7+
def setUp(self):
8+
self.history = repl.History('#%d' % x for x in range(1000))
9+
10+
def test_is_at_start(self):
11+
self.history.first()
12+
13+
self.assertNotEqual(self.history.index, 0)
14+
self.assertTrue(self.history.is_at_end)
15+
self.history.forward()
16+
self.assertFalse(self.history.is_at_end)
17+
18+
def test_is_at_end(self):
19+
self.history.last()
20+
21+
self.assertEqual(self.history.index, 0)
22+
self.assertTrue(self.history.is_at_start)
23+
self.assertFalse(self.history.is_at_end)
24+
25+
def test_first(self):
26+
self.history.first()
27+
28+
self.assertFalse(self.history.is_at_start)
29+
self.assertTrue(self.history.is_at_end)
30+
31+
def test_last(self):
32+
self.history.last()
33+
34+
self.assertTrue(self.history.is_at_start)
35+
self.assertFalse(self.history.is_at_end)
36+
37+
def test_back(self):
38+
self.assertEqual(self.history.back(), '#999')
39+
self.assertNotEqual(self.history.back(), '#999')
40+
self.assertEqual(self.history.back(), '#997')
41+
for x in range(997):
42+
self.history.back()
43+
self.assertEqual(self.history.back(), '#0')
44+
45+
def test_forward(self):
46+
self.history.first()
47+
48+
self.assertEqual(self.history.forward(), '#1')
49+
self.assertNotEqual(self.history.forward(), '#1')
50+
self.assertEqual(self.history.forward(), '#3')
51+
# 1000 == entries 4 == len(range(1, 3) ===> '#1000' (so +1)
52+
for x in range(1000 - 4 - 1):
53+
self.history.forward()
54+
self.assertEqual(self.history.forward(), '#999')
55+
56+
57+
58+
59+
if __name__ == '__main__':
60+
unittest.main()

0 commit comments

Comments
 (0)