| 106 | | |
|---|
| 107 | | def test_read(): |
|---|
| 108 | | from socket import socketpair |
|---|
| 109 | | clientsock, dumbserver = socketpair() |
|---|
| 110 | | dumbserver.send('0' * 64) |
|---|
| 111 | | dumbserver.close() |
|---|
| 112 | | inp = InputStream('', clientsock) |
|---|
| 113 | | assert inp.read(64) == '0' * 64 |
|---|
| 114 | | |
|---|
| 115 | | clientsock, dumbserver = socketpair() |
|---|
| 116 | | dumbserver.send('1' * 16) |
|---|
| 117 | | dumbserver.send('2' * 16) |
|---|
| 118 | | dumbserver.send('3' * 16) |
|---|
| 119 | | dumbserver.send('4' * 16) |
|---|
| 120 | | dumbserver.close() |
|---|
| 121 | | inp = InputStream('', clientsock) |
|---|
| 122 | | |
|---|
| 123 | | d = inp.read(16); assert d == '1' * 16, d |
|---|
| 124 | | d = inp.read(16); assert d == '2' * 16, d |
|---|
| 125 | | d = inp.read(16); assert d == '3' * 16, d |
|---|
| 126 | | d = inp.read(16); assert d == '4' * 16, d |
|---|
| 127 | | |
|---|
| 128 | | |
|---|
| 129 | | def test_readlines(): |
|---|
| 130 | | from socket import socketpair |
|---|
| 131 | | clientsock, dumbserver = socketpair() |
|---|
| 132 | | linedata = '\r\n'.join(['1','2','3', '']) |
|---|
| 133 | | dumbserver.send(linedata) |
|---|
| 134 | | dumbserver.close() |
|---|
| 135 | | inp = InputStream('', clientsock) |
|---|
| 136 | | for i, ln in enumerate(inp.readlines()): |
|---|
| 137 | | expect = '%s\r\n' % str(i+1) |
|---|
| 138 | | assert expect == ln, '"%s" != "%s"' % ( |
|---|
| 139 | | expect, ln |
|---|
| 140 | | ) |
|---|
| 141 | | |
|---|
| 142 | | |
|---|
| 143 | | def test_readlines_with_linepending(): |
|---|
| 144 | | from socket import socketpair |
|---|
| 145 | | clientsock, dumbserver = socketpair() |
|---|
| 146 | | linedata = '\r\n'.join(['1','2','3', '']) |
|---|
| 147 | | dumbserver.send(linedata) |
|---|
| 148 | | dumbserver.close() |
|---|
| 149 | | inp = InputStream('0\r\n', clientsock) |
|---|
| 150 | | for i, ln in enumerate(inp.readlines()): |
|---|
| 151 | | expect = '%s\r\n' % str(i) |
|---|
| 152 | | assert expect == ln, '"%s" != "%s"' % ( |
|---|
| 153 | | expect, ln |
|---|
| 154 | | ) |
|---|
| 155 | | |
|---|
| 156 | | |
|---|
| 157 | | def test_readlines_with_split_terminator_pending(): |
|---|
| 158 | | from socket import socketpair |
|---|
| 159 | | clientsock, dumbserver = socketpair() |
|---|
| 160 | | linedata = '\n' + '\r\n'.join(['1','2','3', '']) |
|---|
| 161 | | dumbserver.send(linedata) |
|---|
| 162 | | dumbserver.close() |
|---|
| 163 | | inp = InputStream('0\r', clientsock) |
|---|
| 164 | | for i, ln in enumerate(inp.readlines()): |
|---|
| 165 | | expect = '%s\r\n' % str(i) |
|---|
| 166 | | assert expect == ln, '"%s" != "%s"' % ( |
|---|
| 167 | | expect, ln |
|---|
| 168 | | ) |
|---|
| 169 | | |
|---|
| 170 | | |
|---|
| 171 | | def test_readlines_with_pending(): |
|---|
| 172 | | """pending is line content, terminator is first thing off the socket.""" |
|---|
| 173 | | from socket import socketpair |
|---|
| 174 | | clientsock, dumbserver = socketpair() |
|---|
| 175 | | linedata = '\r\n'.join(['','2','3', '']) |
|---|
| 176 | | dumbserver.send(linedata) |
|---|
| 177 | | dumbserver.close() |
|---|
| 178 | | inp = InputStream('1', clientsock) |
|---|
| 179 | | for i, ln in enumerate(inp.readlines()): |
|---|
| 180 | | expect = '%s\r\n' % str(i+1) |
|---|
| 181 | | assert expect == ln, '"%s" != "%s"' % ( |
|---|
| 182 | | expect, ln |
|---|
| 183 | | ) |
|---|
| 184 | | |
|---|
| 185 | | |
|---|
| 186 | | def test_readlines_with_pending2(): |
|---|
| 187 | | """pending is partial line content.""" |
|---|
| 188 | | from socket import socketpair |
|---|
| 189 | | clientsock, dumbserver = socketpair() |
|---|
| 190 | | linedata = '\r\n'.join(['11','2222','3333', '']) |
|---|
| 191 | | dumbserver.send(linedata) |
|---|
| 192 | | dumbserver.close() |
|---|
| 193 | | inp = InputStream('11', clientsock) |
|---|
| 194 | | for i, ln in enumerate(inp.readlines()): |
|---|
| 195 | | expect = '%s\r\n' % (str(i+1) * 4) |
|---|
| 196 | | assert expect == ln, '"%s" != "%s"' % ( |
|---|
| 197 | | expect, ln |
|---|
| 198 | | ) |
|---|
| 199 | | |
|---|
| 200 | | if __name__== '__main__': |
|---|
| 201 | | run_tests() |
|---|