~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/test_upgrade.py

  • Committer: Martin Pool
  • Date: 2005-10-04 09:51:59 UTC
  • mto: (1185.13.3)
  • mto: This revision was merged to the branch mainline in revision 1403.
  • Revision ID: mbp@sourcefrog.net-20051004095158-8c76bbb87d081360
- move tree-shape test helpers into their own file

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
from bzrlib.branch import Branch
28
28
from bzrlib.revision import is_ancestor
29
29
from bzrlib.upgrade import upgrade
30
 
 
31
 
 
32
 
# TODO: Hoist these to the test utility module
33
 
# TODO: Script to write a description of a directory for testing
34
 
# TODO: Helper that compares two structures and raises a helpful error
35
 
# where they differ.
36
 
 
37
 
def build_tree_contents(template):
38
 
    """Reconstitute some files from a text description.
39
 
 
40
 
    Each element of template is a tuple.  The first element is a filename,
41
 
    with an optional ending character indicating the type.
42
 
 
43
 
    The template is built relative to the Python process's current
44
 
    working directory.
45
 
    """
46
 
    for tt in template:
47
 
        name = tt[0]
48
 
        if name[-1] == '/':
49
 
            os.mkdir(name)
50
 
        elif name[-1] == '@':
51
 
            raise NotImplementedError('symlinks not handled yet')
52
 
        else:
53
 
            f = file(name, 'wb')
54
 
            try:
55
 
                f.write(tt[1])
56
 
            finally:
57
 
                f.close()
58
 
 
59
 
 
60
 
def pack_tree_contents(top):
61
 
    """Make a Python datastructure description of a tree.
62
 
    
63
 
    If top is an absolute path the descriptions will be absolute."""
64
 
    for dirpath, dirnames, filenames in os.walk(top):
65
 
        yield (dirpath + '/', )
66
 
        filenames.sort()
67
 
        for fn in filenames:
68
 
            fullpath = os.path.join(dirpath, fn)
69
 
            yield (fullpath, file(fullpath, 'rb').read())
70
 
    
 
30
from bzrlib.selftest.treeshape import build_tree_contents
71
31
 
72
32
class TestUpgrade(TestCaseInTempDir):
73
33
    def test_build_tree(self):