def test_readAndWriteBinaryFileHeader(self): """ Reading and writing should not change the binary file header. """ for file, attribs in self.files.items(): endian = attribs['endian'] file = os.path.join(self.path, file) # Read the file. with open(file, 'rb') as f: f.seek(3200) org_header = f.read(400) header = SEGYBinaryFileHeader(header=org_header, endian=endian) # The header writes to a file like object. new_header = io.BytesIO() header.write(new_header) new_header.seek(0, 0) new_header = new_header.read() # Assert the correct length. self.assertEqual(len(new_header), 400) # Assert the actual header. self.assertEqual(org_header, new_header)