def test_segmented_file(self): with tempfile.NamedTemporaryFile(mode='wb') as f: segment_length = 1024 segments = ('a', 'b', 'c', 'd') for c in segments: f.write((c * segment_length).encode()) f.flush() for i, c in enumerate(segments): contents = open(f.name, 'rb') contents.seek(i * segment_length) data = u.LengthWrapper(contents, segment_length, True) read_data = b''.join(iter(data.read, '')) s = (c * segment_length).encode() self.assertEqual(segment_length, len(data)) self.assertEqual(segment_length, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s).hexdigest(), data.get_md5sum()) data.reset() self.assertEqual(md5().hexdigest(), data.get_md5sum()) read_data = b''.join(iter(data.read, '')) self.assertEqual(segment_length, len(data)) self.assertEqual(segment_length, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s).hexdigest(), data.get_md5sum())
def test_stringio(self): contents = six.StringIO('a' * 100) data = u.LengthWrapper(contents, 42) self.assertEqual(42, len(data)) read_data = ''.join(iter(data.read, '')) self.assertEqual(42, len(read_data)) self.assertEqual('a' * 42, read_data)
def test_bytesio(self): contents = six.BytesIO(b'a' * 100) data = u.LengthWrapper(contents, 42, True) s = b'a' * 42 read_data = b''.join(iter(data.read, '')) self.assertEqual(42, len(data)) self.assertEqual(42, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s).hexdigest(), data.get_md5sum())
def test_stringio(self): contents = six.StringIO(u'a' * 100) data = u.LengthWrapper(contents, 42, True) s = u'a' * 42 read_data = u''.join(iter(data.read, '')) self.assertEqual(42, len(data)) self.assertEqual(42, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s.encode()).hexdigest(), data.get_md5sum())
def test_tempfile(self): with tempfile.NamedTemporaryFile(mode='w') as f: f.write('a' * 100) f.flush() contents = open(f.name) data = u.LengthWrapper(contents, 42) self.assertEqual(42, len(data)) read_data = ''.join(iter(data.read, '')) self.assertEqual(42, len(read_data)) self.assertEqual('a' * 42, read_data)
def test_tempfile(self): with tempfile.NamedTemporaryFile(mode='wb') as f: f.write(b'a' * 100) f.flush() contents = open(f.name, 'rb') data = u.LengthWrapper(contents, 42, True) s = b'a' * 42 read_data = b''.join(iter(data.read, '')) self.assertEqual(42, len(data)) self.assertEqual(42, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s).hexdigest(), data.get_md5sum())
def test_segmented_file(self): with tempfile.NamedTemporaryFile(mode='w') as f: segment_length = 1024 segments = ('a', 'b', 'c', 'd') for c in segments: f.write(c * segment_length) f.flush() for i, c in enumerate(segments): contents = open(f.name) contents.seek(i * segment_length) data = u.LengthWrapper(contents, segment_length) self.assertEqual(segment_length, len(data)) read_data = ''.join(iter(data.read, '')) self.assertEqual(segment_length, len(read_data)) self.assertEqual(c * segment_length, read_data)
def test_stringio(self): contents = six.StringIO(u'a' * 50 + u'b' * 50) contents.seek(22) data = u.LengthWrapper(contents, 42, True) s = u'a' * 28 + u'b' * 14 read_data = u''.join(iter(data.read, '')) self.assertEqual(42, len(data)) self.assertEqual(42, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s.encode()).hexdigest(), data.get_md5sum()) data.reset() self.assertEqual(md5().hexdigest(), data.get_md5sum()) read_data = u''.join(iter(data.read, '')) self.assertEqual(42, len(read_data)) self.assertEqual(s, read_data) self.assertEqual(md5(s.encode()).hexdigest(), data.get_md5sum())