def testRead(self): stream = HTTPInputStream(BytesIO(data), {}) output = b'' self.assertEqual(output, self.getCacheStreamValue(stream)) output += stream.read(5) self.assertEqual(output, self.getCacheStreamValue(stream)) output += stream.read() self.assertEqual(output, self.getCacheStreamValue(stream)) self.assertEqual(data, self.getCacheStreamValue(stream))
class HTTPInputStreamTests(unittest.TestCase): def setUp(self): self.stream = HTTPInputStream(StringIO(data), {}) def getCacheStreamValue(self): self.stream.cacheStream.seek(0) result = self.stream.cacheStream.read() # We just did a read on a file opened for update. If the next # operation on that file is a write, behavior is 100% undefined, # and it in fact frequently (but not always) blows up on Windows. # Behavior is 100% defined instead if we explictly seek. Since # we expect to be at EOF now, explicitly seek to the end. self.stream.cacheStream.seek(0, 2) return result def testRead(self): output = '' self.assertEqual(output, self.getCacheStreamValue()) output += self.stream.read(5) self.assertEqual(output, self.getCacheStreamValue()) output += self.stream.read() self.assertEqual(output, self.getCacheStreamValue()) self.assertEqual(data, self.getCacheStreamValue()) def testReadLine(self): output = self.stream.readline() self.assertEqual(output, self.getCacheStreamValue()) output += self.stream.readline() self.assertEqual(output, self.getCacheStreamValue()) output += self.stream.readline() self.assertEqual(output, self.getCacheStreamValue()) output += self.stream.readline() self.assertEqual(output, self.getCacheStreamValue()) self.assertEqual(data, self.getCacheStreamValue()) def testReadLines(self): output = ''.join(self.stream.readlines(4)) self.assertEqual(output, self.getCacheStreamValue()) output += ''.join(self.stream.readlines()) self.assertEqual(output, self.getCacheStreamValue()) self.assertEqual(data, self.getCacheStreamValue()) def testGetChacheStream(self): self.stream.read(5) self.assertEqual(data, self.stream.getCacheStream().read())
def testGetCacheStream(self): stream = HTTPInputStream(BytesIO(data), {}) stream.read(5) self.assertEqual(data, stream.getCacheStream().read())