/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/riodemo.py

  • Committer: Vincent Ladeuil
  • Date: 2007-06-24 15:16:40 UTC
  • mto: (2547.2.1 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 2550.
  • Revision ID: v.ladeuil+lp@free.fr-20070624151640-5tg62jb5g9tqvybd
Fix 121889 by working around urllib2 bug.

* tests/HTTPTestUtil.py:
(DigestAuthRequestHandler.send_header_auth_reqed): python-2.4.1
fail to decode the header without the quotes. The RFC do not
require them, python >= 2.4.4 handles them gracefully. Not a big
deal.

* tests/test_http.py:
(TestAuth.setUp): Add a comment in hope I will not running around
shouting: "Who takes my traces ? Gimme my traces !" when running
the only tests who capture their own traces without showing them.

* transport/http/_urllib2_wrappers.py (BasicAuthHandler,
DigestAuthHandler): Not directly related to the bug, bug good to
fix anyway, the digest auth should be preferred to the basic
one. To do so, the digest handler should be tried before the basic
one.

* builtins.py:
(cmd_selftest.run): Fix typo. Note to reviewers: No, it's not
related to the bug. No there are no tests for that. No I don't
intend to write some :) But I'll understand if you veto that
because you want to take care of it :D

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
 
 
4
# \subsection{Example usage}
 
5
 
6
# \textbf{XXX:} Move these to object serialization code. 
 
7
 
 
8
def write_revision(writer, revision):
 
9
    s = Stanza(revision=revision.revision_id,
 
10
               committer=revision.committer, 
 
11
               timezone=long(revision.timezone),
 
12
               timestamp=long(revision.timestamp),
 
13
               inventory_sha1=revision.inventory_sha1,
 
14
               message=revision.message)
 
15
    for parent_id in revision.parent_ids:
 
16
        s.add('parent', parent_id)
 
17
    for prop_name, prop_value in revision.properties.items():
 
18
        s.add(prop_name, prop_value)
 
19
    writer.write_stanza(s)
 
20
 
 
21
def write_inventory(writer, inventory):
 
22
    s = Stanza(inventory_version=7)
 
23
    writer.write_stanza(s)
 
24
 
 
25
    for path, ie in inventory.iter_entries():
 
26
        s = Stanza()
 
27
        s.add(ie.kind, ie.file_id)
 
28
        for attr in ['name', 'parent_id', 'revision', \
 
29
                     'text_sha1', 'text_size', 'executable', \
 
30
                     'symlink_target', \
 
31
                     ]:
 
32
            attr_val = getattr(ie, attr, None)
 
33
            if attr == 'executable' and attr_val == 0:
 
34
                continue
 
35
            if attr == 'parent_id' and attr_val == 'TREE_ROOT':
 
36
                continue
 
37
            if attr_val is not None:
 
38
                s.add(attr, attr_val)
 
39
        writer.write_stanza(s)
 
40
 
 
41
 
 
42
def read_inventory(inv_file):
 
43
    """Read inventory object from rio formatted inventory file"""
 
44
    from bzrlib.inventory import Inventory, InventoryFile
 
45
    s = read_stanza(inv_file)
 
46
    assert s['inventory_version'] == 7
 
47
    inv = Inventory()
 
48
    for s in read_stanzas(inv_file):
 
49
        kind, file_id = s.items[0]
 
50
        parent_id = None
 
51
        if 'parent_id' in s:
 
52
            parent_id = s['parent_id']
 
53
        if kind == 'file':
 
54
            ie = InventoryFile(file_id, s['name'], parent_id)
 
55
            ie.text_sha1 = s['text_sha1']
 
56
            ie.text_size = s['text_size']
 
57
        else:
 
58
            raise NotImplementedError()
 
59
        inv.add(ie)
 
60
    return inv