~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/xml8.py

  • Committer: Martin Pool
  • Date: 2008-04-24 07:22:53 UTC
  • mto: This revision was merged to the branch mainline in revision 3415.
  • Revision ID: mbp@sourcefrog.net-20080424072253-opmjij7xfy38w27f
Remove every assert statement from bzrlib!

Depending on the context they are:

 * turned into an explicit if/raise of either AssertionError 
   or something more specific -- particularly where they protect
   programming interfaces, complex invariants, or data file integrity
 * removed, if they're redundant with a later check, not protecting
   a meaningful invariant
 * turned into a selftest method on tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
161
161
        :param inv: An inventory about to be serialised, to be checked.
162
162
        :raises: AssertionError if an error has occured.
163
163
        """
164
 
        assert inv.revision_id is not None
165
 
        assert inv.root.revision is not None
 
164
        if inv.revision_id is None:
 
165
            raise AssertionError()
 
166
        if inv.root.revision is None:
 
167
            raise AssertionError()
166
168
 
167
169
    def write_inventory_to_lines(self, inv):
168
170
        """Return a list of lines with the encoded inventory."""
316
318
            pelts = SubElement(root, 'parents')
317
319
            pelts.tail = pelts.text = '\n'
318
320
            for parent_id in rev.parent_ids:
319
 
                assert isinstance(parent_id, basestring)
320
321
                _mod_revision.check_not_reserved_id(parent_id)
321
322
                p = SubElement(pelts, 'revision_ref')
322
323
                p.tail = '\n'
330
331
    def _pack_revision_properties(self, rev, under_element):
331
332
        top_elt = SubElement(under_element, 'properties')
332
333
        for prop_name, prop_value in sorted(rev.properties.items()):
333
 
            assert isinstance(prop_name, basestring) 
334
 
            assert isinstance(prop_value, basestring) 
335
334
            prop_elt = SubElement(top_elt, 'property')
336
335
            prop_elt.set('name', prop_name)
337
336
            prop_elt.text = prop_value
353
352
        for e in elt:
354
353
            ie = self._unpack_entry(e)
355
354
            inv.add(ie)
356
 
        assert inv.root.revision is not None
357
355
        return inv
358
356
 
359
357
    def _unpack_entry(self, elt):
397
395
 
398
396
    def _unpack_revision(self, elt):
399
397
        """XML Element -> Revision object"""
400
 
        assert elt.tag == 'revision'
401
398
        format = elt.get('format')
402
399
        format_num = self.format_num
403
400
        if self.revision_format_num is not None:
414
411
                       )
415
412
        parents = elt.find('parents') or []
416
413
        for p in parents:
417
 
            assert p.tag == 'revision_ref', \
418
 
                   "bad parent node tag %r" % p.tag
419
414
            rev.parent_ids.append(get_cached(p.get('revision_id')))
420
415
        self._unpack_revision_properties(elt, rev)
421
416
        v = elt.get('timezone')
429
424
    def _unpack_revision_properties(self, elt, rev):
430
425
        """Unpack properties onto a revision."""
431
426
        props_elt = elt.find('properties')
432
 
        assert len(rev.properties) == 0
433
427
        if not props_elt:
434
428
            return
435
429
        for prop_elt in props_elt:
436
 
            assert prop_elt.tag == 'property', \
437
 
                "bad tag under properties list: %r" % prop_elt.tag
 
430
            if prop_elt.tag != 'property':
 
431
                raise AssertionError(
 
432
                    "bad tag under properties list: %r" % prop_elt.tag)
438
433
            name = prop_elt.get('name')
439
434
            value = prop_elt.text
440
435
            # If a property had an empty value ('') cElementTree reads
442
437
            # properties have string values
443
438
            if value is None:
444
439
                value = ''
445
 
            assert name not in rev.properties, \
446
 
                "repeated property %r" % name
 
440
            if name in rev.properties:
 
441
                raise AssertionError("repeated property %r" % name)
447
442
            rev.properties[name] = value
448
443
 
449
444