내가 파이썬 사전에 cStringIO를 사용하여 매우 큰 문자열 스트림을 읽을려고 스트림하기 먼저 경로에 데이터가 존재 함을 주장, stream_write을 테스트하고 stream_read 전화 : 내 테스트 스위트 그러나사용하여 발전기 cStringIO 문자열
def test_stream(self):
filename = self.gen_random_string()
# test 7MB
content = self.gen_random_string(7 * 1024 * 1024)
# test stream write
io = StringIO.StringIO(content)
self._storage.stream_write(filename, io)
io.close()
self.assertTrue(self._storage.exists(filename))
# test read/write
data = ''
for buf in self._storage.stream_read(filename):
data += buf
self.assertEqual(content, data)
, 내가 잡고있어 지정해 AssertionError :
======================================================================
FAIL: test_stream (test_swift_storage.TestSwiftStorage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/bacongobbler/.../test/test_local_storage.py", line 44, in test_stream
self.assertEqual(content, data)
AssertionError: '[squelched]' != '<cStringIO.StringI object at 0x3148e70>'
----------------------------------------------------------------------
Ran 28 tests in 20.495s
FAILED (failures=1)
외모는 an issue I posted last week과 관련되어 보입니다. 그러나이 경우에는 stream
이 생성기로 설정된 이유를 잘 모르겠습니다.
def put_content(self, path, content, chunk=None):
path = self._init_path(path)
try:
self._swift_container[path] = content
except Exception:
raise IOError("Could not put content")
을 content
가 io
입니다 : self._storage.stream_write(filename, io)
를 호출 할 때 누군가가 소스 코드에 대해 자세히 살펴하고자하는 경우
, 그것은 당신이 단지StringIO
객체를 저장 https://github.com/bacongobbler/docker-registry/blob/106-swift-storage/test/utils/mock_swift_storage.py
HERP의 DERP, 내가 한 것을를 놓쳤다. 잘 잡으세요! – bacongobbler