~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bundle/serializer/v4.py

  • Committer: Aaron Bentley
  • Date: 2007-07-05 00:17:17 UTC
  • mto: This revision was merged to the branch mainline in revision 2631.
  • Revision ID: aaron.bentley@utoronto.ca-20070705001717-xvjziyhsvaehxz01
Raise BadBundle for records with wrong number of names

Show diffs side-by-side

added added

removed removed

Lines of Context:
190
190
            file_id)
191
191
        """
192
192
        iterator = self._container.iter_records()
193
 
        for (name,), meta_bytes in iterator:
 
193
        for names, meta_bytes in iterator:
 
194
            if len(names) != 1:
 
195
                raise errors.BadBundle('Record has %d names instead of 1'
 
196
                                       % len(names))
194
197
            metadata = bencode.bdecode(meta_bytes(None))
195
198
            if metadata['storage_kind'] == 'header':
196
199
                bytes = None
197
200
            else:
198
201
                _unused, bytes = iterator.next()
199
202
                bytes = bytes(None)
200
 
            yield (bytes, metadata) + self.decode_name(name)
 
203
            yield (bytes, metadata) + self.decode_name(names[0])
201
204
 
202
205
 
203
206
class BundleSerializerV4(serializer.BundleSerializer):
514
517
            parent_texts)
515
518
        sha1 = osutils.sha_strings(target_lines)
516
519
        if sha1 != metadata['sha1']:
517
 
            raise BadBundle("Can't convert to target format")
 
520
            raise errors.BadBundle("Can't convert to target format")
518
521
        target_inv = self._source_serializer.read_inventory_from_string(
519
522
            ''.join(target_lines))
520
523
        self._handle_root(target_inv, parent_ids)