Revision 7a3c66e1 kamaki/clients/utils/test.py
b/kamaki/clients/utils/test.py | ||
---|---|---|
34 | 34 |
#from mock import patch, call |
35 | 35 |
|
36 | 36 |
from unittest import TestCase |
37 |
from tempfile import TemporaryFile |
|
38 |
|
|
37 | 39 |
from kamaki.clients import utils |
38 | 40 |
|
39 | 41 |
|
... | ... | |
128 | 130 |
self.assertEqual(utils.path4url(*args), expected) |
129 | 131 |
|
130 | 132 |
def test_readall(self): |
131 |
|
|
132 |
class fakefile(object): |
|
133 |
|
|
134 |
responses = ['1', '2', '3', '4', '5', '6', '7'] |
|
135 |
failures = [False, ] * 7 |
|
136 |
|
|
137 |
def __init__(self): |
|
138 |
def _read_gen(self): |
|
139 |
for i, r in enumerate(self.responses): |
|
140 |
if self.failures[i]: |
|
141 |
yield '' |
|
142 |
yield r |
|
143 |
self._reader = _read_gen(self) |
|
144 |
|
|
145 |
def read(self, size=None): |
|
146 |
return self._reader.next() |
|
147 |
|
|
148 |
fileobj = fakefile() |
|
149 |
self.assertEqual( |
|
150 |
''.join(fakefile.responses), utils.readall(fileobj, 7)) |
|
151 |
fileobj = fakefile() |
|
152 |
self.assertEqual( |
|
153 |
''.join(fakefile.responses[:4]), utils.readall(fileobj, 4)) |
|
154 |
fileobj = fakefile() |
|
155 |
self.assertRaises(IOError, utils.readall, fileobj, 10) |
|
156 |
fileobj = fakefile() |
|
157 |
fileobj.failures[1] = True |
|
158 |
self.assertRaises(IOError, utils.readall, fileobj, 7) |
|
159 |
fileobj = fakefile() |
|
160 |
fileobj.failures[1] = True |
|
161 |
self.assertEqual( |
|
162 |
''.join(fakefile.responses), utils.readall(fileobj, 7, 8)) |
|
133 |
tstr = '1234567890' |
|
134 |
with TemporaryFile() as f: |
|
135 |
f.write(tstr) |
|
136 |
f.flush() |
|
137 |
f.seek(0) |
|
138 |
self.assertEqual(utils.readall(f, 5), tstr[:5]) |
|
139 |
self.assertEqual(utils.readall(f, 10), tstr[5:]) |
|
140 |
self.assertEqual(utils.readall(f, 1), '') |
|
141 |
self.assertRaises(IOError, utils.readall, f, 1, 0) |
|
163 | 142 |
|
164 | 143 |
if __name__ == '__main__': |
165 | 144 |
from sys import argv |
Also available in: Unified diff