~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to tests/upstream_import.py

  • Committer: Aaron Bentley
  • Date: 2009-06-16 05:05:04 UTC
  • Revision ID: aaron@aaronbentley.com-20090616050504-wexqxdlrkpljs0cv
Remove obsolete aliases for shelve1 and unshelve1

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
from bzrlib.bzrdir import BzrDir
10
10
from bzrlib.plugins.bzrtools.upstream_import import (
11
11
    common_directory,
 
12
    import_archive,
12
13
    import_tar,
13
14
    import_zip,
14
15
    import_dir,
15
 
    top_directory,
16
 
    ZipFileWrapper, 
 
16
    top_path,
 
17
    ZipFileWrapper,
17
18
)
18
19
from bzrlib.tests import TestCaseInTempDir
19
20
 
 
21
 
 
22
def import_tar_broken(tree, tar_input):
 
23
    """
 
24
    Import a tarfile with names that that end in //, e.g. Feisty Python 2.5
 
25
    """
 
26
    tar_file = tarfile.open('lala', 'r', tar_input)
 
27
    for member in tar_file.members:
 
28
        if member.name.endswith('/'):
 
29
            member.name += '/'
 
30
    import_archive(tree, tar_file)
 
31
 
 
32
 
20
33
class DirFileWriter(object):
21
34
 
22
35
    def __init__(self, fileobj, mode):
68
81
                os.chdir('project-0.1')
69
82
            os.mkdir(prefix + 'junk')
70
83
            archive_file.add(prefix + 'junk')
71
 
            
 
84
 
72
85
            f = file(prefix + 'README', 'wb')
73
86
            f.write('What?')
74
87
            f.close()
98
111
            else:
99
112
                prefix=''
100
113
                os.chdir('project-0.2')
101
 
            
 
114
 
102
115
            os.mkdir(prefix + 'junk')
103
116
            archive_file.add(prefix + 'junk')
104
117
 
126
139
 
127
140
        os.mkdir('project-0.2')
128
141
        tar_file.add('project-0.2')
129
 
        
 
142
 
130
143
        f = file('project-0.1/README', 'wb')
131
144
        f.write('What?')
132
145
        f.close()
141
154
            return ZipFileWrapper(fileobj, 'w')
142
155
        return self.make_archive(maker)
143
156
 
144
 
    def test_top_directory(self):
145
 
        self.assertEqual(top_directory('ab/b/c'), 'ab')
146
 
        self.assertEqual(top_directory('/etc'), '/')
 
157
    def test_top_path(self):
 
158
        self.assertEqual(top_path('ab/b/c'), 'ab')
 
159
        self.assertEqual(top_path('etc'), 'etc')
 
160
        self.assertEqual(top_path('project-0.1'), 'project-0.1')
147
161
 
148
162
    def test_common_directory(self):
149
163
        self.assertEqual(common_directory(['ab/c/d', 'ab/c/e']), 'ab')
150
164
        self.assertIs(common_directory(['ab/c/d', 'ac/c/e']), None)
151
 
        self.assertIs(None, common_directory(['FEEDME']))
 
165
        self.assertEqual('FEEDME', common_directory(['FEEDME']))
152
166
 
153
167
    def test_untar(self):
154
168
        def builder(fileobj, mode='w'):
155
169
            return tarfile.open('project-0.1.tar', mode, fileobj)
156
170
        self.archive_test(builder, import_tar)
157
171
 
 
172
    def test_broken_tar(self):
 
173
        def builder(fileobj, mode='w'):
 
174
            return tarfile.open('project-0.1.tar', mode, fileobj)
 
175
        self.archive_test(builder, import_tar_broken, subdir=True)
 
176
 
158
177
    def test_unzip(self):
159
178
        def builder(fileobj, mode='w'):
160
179
            return ZipFileWrapper(fileobj, mode)
196
215
        tar_file = self.make_messed_tar()
197
216
        tree = BzrDir.create_standalone_workingtree('tree')
198
217
        import_tar(tree, tar_file)
199
 
        self.assertTrue(tree.path2id('project-0.1/README') is not None) 
 
218
        self.assertTrue(tree.path2id('project-0.1/README') is not None)
200
219
 
201
220
    def test_untar_gzip(self):
202
221
        tar_file = self.make_tar(mode='w:gz')
203
222
        tree = BzrDir.create_standalone_workingtree('tree')
204
223
        import_tar(tree, tar_file)
205
 
        self.assertTrue(tree.path2id('README') is not None) 
 
224
        self.assertTrue(tree.path2id('README') is not None)
206
225
 
207
226
def test_suite():
208
227
    return makeSuite(TestImport)