-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathtest_buffer.py
More file actions
84 lines (70 loc) · 2.24 KB
/
test_buffer.py
File metadata and controls
84 lines (70 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import os
import unittest
import libevent
class TestBuffer(unittest.TestCase):
def createBuffer(self):
return libevent.Buffer()
def test_add_remove(self):
buf = self.createBuffer()
self.failUnlessEqual(len(buf), 0)
self.failIf(bool(buf))
buf.add('12')
self.failUnless(bool(buf))
self.failUnlessEqual(len(buf), 2)
buf.add('34')
self.failUnlessEqual(len(buf), 4)
self.failUnless('12' in buf)
self.failUnless('23' in buf)
self.failUnless('34' in buf)
self.failUnless('1234' in buf)
self.failUnlessEqual(buf.remove(4), '1234')
self.failUnlessEqual(len(buf), 0)
self.failUnlessRaises(TypeError, buf.remove, -2)
def test_add_copyout(self):
buf = self.createBuffer()
buf.add('12')
buf.add('34')
self.failUnlessEqual(buf.copyout(2), '12')
self.failUnlessEqual(buf.copyout(4), '1234')
self.failUnlessRaises(TypeError, buf.copyout, -2)
def test_add_buffer(self):
buf1 = self.createBuffer()
buf1.add('12')
buf1.add('34')
buf2 = self.createBuffer()
buf2.add(buf1)
self.failUnlessEqual(buf1.remove(1), '')
self.failUnlessEqual(buf2.remove(4), '1234')
def test_prepend_remove(self):
buf = self.createBuffer()
buf.prepend('12')
buf.prepend('34')
self.failUnlessEqual(buf.remove(4), '3412')
def test_prepend_buffer(self):
buf1 = self.createBuffer()
buf1.add('12')
buf2 = self.createBuffer()
buf2.add('34')
buf3 = self.createBuffer()
buf3.prepend(buf1)
buf3.prepend(buf2)
self.failUnlessEqual(buf3.remove(4), '3412')
def test_readln_noline(self):
buf = self.createBuffer()
buf.add('foo')
line = buf.readln()
self.failUnlessEqual(line, '')
buf.add('\n')
line = buf.readln()
self.failUnlessEqual(line, 'foo')
self.failIf(bool(buf))
def suite():
suite = unittest.TestSuite()
test_cases = [
TestBuffer,
]
for tc in test_cases:
suite.addTest(unittest.makeSuite(tc))
return suite
if __name__ == '__main__':
unittest.main(defaultTest='suite')