16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
18
from bzrlib.tests import TestCaseInTempDir, TestCase
19
from bzrlib import repository
19
20
from bzrlib.osutils import has_symlinks
22
23
except ImportError:
26
from bzrtools.baz_import import (import_version, revision_id,
27
cmd_baz_import, make_archive, map_file_id)
29
from bzrlib.plugins.bzrtools.baz_import import (import_version,
26
from bzrlib.plugins.bzrtools import cmd_baz_import
27
from bzrlib.plugins.bzrtools.baz_import import (import_version,
35
32
from StringIO import StringIO
37
34
from testresources import (TestResource, TestLoader, OptimisingTestSuite,
41
38
from bzrlib.errors import NoSuchRevision
43
from bzrtools.fai import namespace_previous
45
from bzrlib.plugins.bzrtools.fai import namespace_previous
39
from bzrlib.plugins.bzrtools.fai import namespace_previous
46
40
from bzrlib.branch import Branch
70
64
pybaz.set_my_id("Test User<test@example.org>")
72
66
self.make_empty_import()
74
69
self._empty_tag = 'demo@DONOTUSE/c--empty-tag--0'
75
self._empty_tag_bzr = revision_id(self._empty_tag + '--base-0')
70
self._empty_tag_bzr = revision_id(self._empty_tag + '--base-0', None)
76
71
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
77
72
pybaz.Version(self._empty_tag))
79
74
self._empty_merged_tag = 'demo@DONOTUSE/c--empty-merged-tag--0'
80
self._empty_merged_tag_bzr_base = revision_id(self._empty_merged_tag
82
self._empty_merged_tag_bzr = revision_id(self._empty_merged_tag
75
self._empty_merged_tag_bzr_base = revision_id(self._empty_merged_tag
77
self._empty_merged_tag_bzr = revision_id(self._empty_merged_tag
84
79
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
85
80
pybaz.Version(self._empty_merged_tag))
86
81
tree = pybaz.Revision(self._empty_merged_tag + '--base-0').get(
91
86
msg["summary"]="did a merge, yarh"
93
88
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
95
90
# tree, two commits, includes merge of other branch
96
91
self._empty_merged_tag_2 = 'demo@DONOTUSE/c--empty-tag-2--0'
97
92
self._empty_merged_tag_2_bzr_base = revision_id(
98
self._empty_merged_tag_2 + '--base-0')
93
self._empty_merged_tag_2 + '--base-0', None)
99
94
self._empty_merged_tag_2_bzr = revision_id(
100
self._empty_merged_tag_2 + '--patch-1')
95
self._empty_merged_tag_2 + '--patch-1', None)
101
96
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
102
97
pybaz.Version(self._empty_merged_tag_2))
103
98
tree = pybaz.Revision(self._empty_merged_tag_2 + '--base-0').get (
110
105
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
112
107
self._bad_id_tag = 'demo@DONOTUSE/c--bad-id--0'
113
self._bad_id_tag_bzr_base = revision_id(self._bad_id_tag + '--base-0')
114
self._bad_id_tag_bzr = revision_id(self._bad_id_tag + '--patch-1')
108
self._bad_id_tag_bzr_base = revision_id(self._bad_id_tag + '--base-0',
110
self._bad_id_tag_bzr = revision_id(self._bad_id_tag + '--patch-1',
115
112
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
116
113
pybaz.Version(self._bad_id_tag))
117
114
tree = pybaz.Revision(self._bad_id_tag + '--base-0').get(
118
115
os.path.join(self._tmpdir, 'tree'))
119
116
from bzrlib.plugins.bzrtools.baz_import import add_file
120
add_file(os.path.join(self._tmpdir,'tree/path'), 'text',
117
add_file(os.path.join(self._tmpdir,'tree/path'), 'text',
121
118
'this_id/needs%escaping')
122
119
msg = tree.log_message()
123
120
msg["summary"] = "commit something which needs escaping."
131
128
def make_import_symlink(self):
132
129
self._import_symlink = 'demo@DONOTUSE/c--import-symlink--0'
133
130
self._import_symlink_bzr = revision_id(
134
self._import_symlink + '--base-0')
131
self._import_symlink + '--base-0', None)
135
132
os.mkdir(os.path.join(self._tmpdir, 'tree'))
136
133
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
137
134
self._import_symlink)
138
os.symlink('missing-file-name',
139
os.path.join(self._tmpdir, 'tree', 'alink'))
135
link_path = os.path.join(self._tmpdir, 'tree', 'alink')
136
os.symlink('missing-file-name', link_path)
140
137
tree.add_tag('alink')
141
138
id_file = open(os.path.join(tree, '.arch-ids', 'alink.id'), 'w')
142
139
id_file.write('symlink_tag\n')
144
141
msg = tree.log_message()
145
142
msg["summary"] = "Import with a symlink"
146
143
tree.import_(msg)
145
f = file(link_path, 'w')
146
f.write('Not a symlink no more!')
148
msg = tree.log_message()
149
msg["summary"] = "Turn a symlink into a file"
147
151
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
149
153
def make_empty_import(self):
150
154
self._import = 'demo@DONOTUSE/c--import--0'
151
155
os.mkdir(os.path.join(self._tmpdir, 'tree'))
152
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
156
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
154
158
msg = tree.log_message()
155
159
msg["summary"] = "I am importing now"
156
160
tree.import_(msg)
157
161
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
163
def make_utf8_log(self):
164
self._utf8 = 'demo@DONOTUSE/c--utf8--0'
165
os.mkdir(os.path.join(self._tmpdir, 'tree'))
166
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
168
msg = tree.log_message()
169
msg["summary"] = u"I am importing now\u1234".encode('utf-8')
171
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
159
173
def make_missing_ancestor(self):
160
174
self._archivegoneroot = os.path.join(self._tmpdir, 'archivegone')
161
175
self._archive = make_archive('demo-gone@DONOTUSE',
162
176
str(self._archivegoneroot))
163
177
self._missing_import = 'demo-gone@DONOTUSE/c--import--0'
164
self._missing_import_bzr = revision_id(self._missing_import
178
self._missing_import_bzr = revision_id(self._missing_import
166
180
self._missing_ancestor = 'demo@DONOTUSE/c--gone--0'
167
self._missing_ancestor_bzr = revision_id(self._missing_ancestor
181
self._missing_ancestor_bzr = revision_id(self._missing_ancestor
169
183
os.mkdir(os.path.join(self._tmpdir, 'tree'))
170
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
184
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
171
185
self._missing_import)
172
186
msg = tree.log_message()
173
187
msg["summary"] = "I am importing now"
180
194
# make an import for testing history-reuse logic.
181
195
# note the use of a namespace layout here.
182
self._missing_import_imported = os.path.join(self._tmpdir,
196
self._missing_import_imported = os.path.join(self._tmpdir,
183
197
'archivegone-bzr')
184
198
os.mkdir(os.path.join(self._tmpdir, 'archivegone-bzr'))
185
199
os.mkdir(os.path.join(self._tmpdir, 'archivegone-bzr', 'c'))
186
import_version(os.path.join(self._tmpdir, 'archivegone-bzr',
200
import_version(os.path.join(self._tmpdir, 'archivegone-bzr',
188
pybaz.Version(self._missing_import))
202
pybaz.Version(self._missing_import), None)
189
203
# and make it inaccessible
190
204
pybaz.Archive('demo-gone@DONOTUSE').unregister()
192
206
def make_inbranch_continuation(self):
193
207
self._inbranch_tag = 'demo@DONOTUSE/c--inbranch-tag--0'
194
208
self._inbranch_tag_base = self._inbranch_tag + '--base-0'
195
self._inbranch_tag_base_bzr = revision_id(self._inbranch_tag_base)
209
self._inbranch_tag_base_bzr = revision_id(self._inbranch_tag_base,
196
211
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
197
212
pybaz.Version(self._inbranch_tag))
198
213
self._inbranch_tag_head = self._inbranch_tag + '--patch-1'
199
self._inbranch_tag_head_bzr = revision_id(self._inbranch_tag_head)
214
self._inbranch_tag_head_bzr = revision_id(self._inbranch_tag_head,
200
216
pybaz.Revision(self._inbranch_tag_base).make_continuation(
201
217
pybaz.Version(self._inbranch_tag))
221
237
def tearDown(self):
222
238
ResourcedTestCase.tearDownResources(self)
223
239
TestCaseInTempDir.tearDown(self)
241
def test_import_utf8(self):
242
import_version('output', pybaz.Version(self._baz._utf8), None)
243
branch = Branch.open('output')
244
plain_revid = 'Arch-1:demo@DONOTUSE%c--utf8--0--base-0'
245
self.assertEqual([plain_revid], branch.revision_history())
246
self.assertEqual(u'I am importing now\ufffd\ufffd\ufffd',
247
branch.repository.get_revision(plain_revid).message)
248
import_version('output2', pybaz.Version(self._baz._utf8), 'utf-8')
249
branch2 = Branch.open('output2')
250
utf8_revid = 'Arch-1-utf-8:demo@DONOTUSE%c--utf8--0--base-0'
251
self.assertEqual([utf8_revid], branch2.revision_history())
252
self.assertEqual(u'I am importing now\u1234',
253
branch2.repository.get_revision(utf8_revid).message)
225
255
def test_import_empty(self):
226
import_version('output', pybaz.Version(self._baz._import))
256
import_version('output', pybaz.Version(self._baz._import), None)
227
257
# expected results:
228
# one commit, no files, revision identifier of
258
# one commit, no files, revision identifier of
229
259
# 'demo@DONOTUSE_c--import--0--base-0'
230
260
branch = Branch.open('output')
231
261
repo = branch.repository
248
279
"Arch-1:demo@DONOTUSE%c--import--0--base-0")
250
281
def test_empty_tagged(self):
251
import_version('output', pybaz.Version(self._baz._empty_tag))
282
import_version('output', pybaz.Version(self._baz._empty_tag), None)
252
283
# expected results:
253
# two commits, no files, revision identifiers of
284
# two commits, no files, revision identifiers of
254
285
# 'demo@DONOTUSE_c--import--0--base-0' and
255
286
# self._baz._empty_tag_bzr
256
287
branch = Branch.open('output')
269
300
# and we should get some expected values:
270
301
self.assertEqual(rev.committer, "Test User<test@example.org>")
271
self.assertEqual(rev.message,
302
self.assertEqual(rev.message,
272
303
"tag of demo@DONOTUSE/c--import--0--base-0")
273
304
self.assertEqual(rev.revision_id, self._baz._empty_tag_bzr)
275
306
def test_empty_merged_tagged(self):
276
import_version('output', pybaz.Version(self._baz._empty_merged_tag))
307
import_version('output', pybaz.Version(self._baz._empty_merged_tag),
277
309
# expected results:
278
# two commits, no files, revision identifiers of
310
# two commits, no files, revision identifiers of
279
311
# 'demo@DONOTUSE_c--import--0--base-0' and
280
312
# self._baz._empty_merged_tag_bzr_base
281
313
# self._baz._empty_merged_tag_bzr
288
320
self._baz._empty_merged_tag_bzr_base,
289
321
self._baz._empty_merged_tag_bzr])
291
import_version('output2', pybaz.Version(self._baz._empty_merged_tag))
323
import_version('output2', pybaz.Version(self._baz._empty_merged_tag),
292
325
branch2 = Branch.open('output2')
293
326
repo2 = branch2.repository
294
327
# and import what we should be merged up against for checking with.
295
import_version('output3', pybaz.Version(self._baz._empty_tag))
328
import_version('output3', pybaz.Version(self._baz._empty_tag), None)
296
329
branch3 = Branch.open('output3')
298
331
self.assertEqual(branch.revision_history(), branch2.revision_history())
299
self.assertNotEqual(branch.revision_history(),
332
self.assertNotEqual(branch.revision_history(),
300
333
branch3.revision_history())
301
334
# check revisions in the history.
302
335
rev = repo.get_revision(self._baz._empty_merged_tag_bzr_base)
324
357
self._baz._empty_merged_tag_bzr_base)
325
358
self.assertEqual(rev.parent_ids[1], self._baz._empty_tag_bzr)
327
# this tree should have nothing missing from that tree.
360
# this tree should have nothing missing from that tree.
328
361
# FIXME there is no code for this right now.
329
362
# self.assertEqual(branch.missing_revisions(branch3), [])
331
364
def test_merge_branch_with_merges(self):
332
import_version('output', pybaz.Version(self._baz._empty_merged_tag_2))
365
import_version('output', pybaz.Version(self._baz._empty_merged_tag_2),
333
367
# expected results:
334
# two commits, no files, revision identifiers of
368
# two commits, no files, revision identifiers of
335
369
# 'demo@DONOTUSE_c--import--0--base-0' and
336
370
# self._baz._empty_merged_tag_2_bzr_base
337
371
# self._baz._empty_merged_tag_2_bzr
344
378
self._baz._empty_merged_tag_2_bzr_base,
345
379
self._baz._empty_merged_tag_2_bzr])
347
import_version('output2', pybaz.Version(self._baz._empty_merged_tag_2))
381
import_version('output2', pybaz.Version(self._baz._empty_merged_tag_2),
348
383
branch2 = Branch.open('output2')
349
384
repo2 = branch2.repository
350
385
# and import what we should be merged up against for checking with.
351
import_version('output3', pybaz.Version(self._baz._empty_merged_tag))
386
import_version('output3', pybaz.Version(self._baz._empty_merged_tag),
352
388
branch3 = Branch.open('output3')
354
390
self.assertEqual(branch.revision_history(), branch2.revision_history())
355
self.assertNotEqual(branch.revision_history(),
391
self.assertNotEqual(branch.revision_history(),
356
392
branch3.revision_history())
357
393
# check revisions in the history.
358
394
rev = repo.get_revision(self._baz._empty_merged_tag_2_bzr_base)
361
397
self.assertEqual(rev, rev2)
362
398
# and we should get some expected values:
363
399
self.assertEqual(rev.committer, "Test User<test@example.org>")
364
self.assertEqual(rev.message,
400
self.assertEqual(rev.message,
365
401
"tag of demo@DONOTUSE/c--import--0--base-0")
366
self.assertEqual(rev.revision_id,
402
self.assertEqual(rev.revision_id,
367
403
self._baz._empty_merged_tag_2_bzr_base)
369
405
# check next revisions in the history.
380
416
self.assertEqual(rev.parent_ids[1],
381
417
self._baz._empty_merged_tag_bzr)
383
# this tree should have nothing missing from that tree.
419
# this tree should have nothing missing from that tree.
384
420
# FIXME there is no code for this right now.
385
421
# self.assertEqual(branch.missing_revisions(branch3), [])
387
423
def test_import_symlink(self):
388
import_version('output', pybaz.Version(self._baz._import_symlink))
424
import_version('output', pybaz.Version(self._baz._import_symlink),
389
426
# expected results:
390
# one commit, no files, revision identifier of
427
# two commits, no files, revision identifier of
391
428
# 'demo@DONOTUSE_c--import--0--base-0'
392
429
branch = Branch.open('output')
393
430
self.assertEqual(branch.revision_history(),
394
431
[self._baz._import_symlink_bzr])
395
432
rev = branch.repository.get_revision(self._baz._import_symlink_bzr)
397
import_version('output2', pybaz.Version(self._baz._import_symlink))
434
import_version('output2', pybaz.Version(self._baz._import_symlink),
398
436
branch2 = Branch.open('output2')
399
437
self.assertEqual(branch.revision_history(), branch2.revision_history())
400
438
rev2 = branch2.repository.get_revision(self._baz._import_symlink_bzr)
413
451
self.assertEqual(entry.kind, 'symlink')
414
452
self.assertEqual(entry.symlink_target, 'missing-file-name')
454
# Test kind change for import
455
import_version('output3', pybaz.Version(self._baz._import_symlink),
416
458
def test_missing_ancestor(self):
417
import_version('output', pybaz.Version(self._baz._missing_ancestor))
459
import_version('output', pybaz.Version(self._baz._missing_ancestor),
418
461
# expected results:
419
# one commits, no files, revision identifiers of
462
# one commits, no files, revision identifiers of
420
463
# 'demo@DONOTUSE_c--gone--0--base-0' and
421
464
# a merge of demo-gone@DONOTUSE%c--import--0
422
465
branch = Branch.open('output')
434
478
# and we should get some expected values:
435
479
self.assertEqual(rev.committer, "Test User<test@example.org>")
436
self.assertEqual(rev.message,
480
self.assertEqual(rev.message,
437
481
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
438
482
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
439
483
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
440
484
self.assertEqual(1, len(rev.parent_ids))
442
486
# must NOT be able to get the merged evision
443
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
487
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
444
488
self._baz._missing_import_bzr)
446
490
def test_missing_ancestor_reusing_history(self):
447
491
import_version('output', pybaz.Version(self._baz._missing_ancestor),
448
493
reuse_history_from=[self._baz._missing_import_imported])
449
494
# expected results:
450
# one commits, no files, revision identifiers of
451
# 'demo-gone@DONOTUSE%c--import--0--base-0' and
495
# one commits, no files, revision identifiers of
496
# 'demo-gone@DONOTUSE%c--import--0--base-0' and
452
497
# 'demo@DONOTUSE%c--gone--0--base-0'
453
498
branch = Branch.open('output')
454
499
self.assertEqual(branch.revision_history(),
470
516
# and we should get some expected values:
471
517
self.assertEqual(rev.committer, "Test User<test@example.org>")
472
self.assertEqual(rev.message,
518
self.assertEqual(rev.message,
473
519
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
474
520
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
475
521
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
476
522
self.assertEqual(1, len(rev.parent_ids))
478
524
def test_bad_file_id(self):
479
import_version('output', pybaz.Version(self._baz._bad_id_tag))
525
import_version('output', pybaz.Version(self._baz._bad_id_tag), None)
480
526
# expected results:
481
# three commits, one files, revision identifiers of
527
# three commits, one files, revision identifiers of
482
528
# 'demo@DONOTUSE_c--import--0--base-0' ,
483
529
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
484
530
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
493
539
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
495
541
def test_appending_revisions_already_present(self):
496
import_version('output', pybaz.Version(self._baz._bad_id_tag),
542
import_version('output', pybaz.Version(self._baz._bad_id_tag), None,
498
544
# expected results:
499
# three commits, one files, revision identifiers of
545
# three commits, one files, revision identifiers of
500
546
# 'demo@DONOTUSE_c--import--0--base-0' ,
501
547
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
502
548
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
523
569
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
525
571
def test_appending_revisions_all_already_present(self):
526
import_version('output', pybaz.Version(self._baz._bad_id_tag))
572
import_version('output', pybaz.Version(self._baz._bad_id_tag), None)
527
573
# expected results:
528
# three commits, one files, revision identifiers of
574
# three commits, one files, revision identifiers of
529
575
# 'demo@DONOTUSE_c--import--0--base-0' ,
530
576
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
531
577
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
553
599
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
555
601
def test_inbranch_conversion(self):
556
import_version('output', pybaz.Version(self._baz._inbranch_tag))
602
import_version('output', pybaz.Version(self._baz._inbranch_tag), None)
557
603
# expected results:
558
# three commits, no files, revision identifiers of
604
# three commits, no files, revision identifiers of
559
605
# 'demo@DONOTUSE_c--import--0--base-0' and
560
606
# self._baz._inbranch_tag_base_bzr
561
607
# self._baz._inbranch_tag_head_bzr
688
734
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
690
736
def test_cmd_exists(self):
691
from bzrlib.plugins.bzrtools.baz_import import cmd_baz_import
737
from bzrlib.plugins.bzrtools import cmd_baz_import
693
739
def test_empty_archive(self):
694
740
command = cmd_baz_import()
695
741
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
696
742
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
697
743
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
698
self.assertEqual(7, walk_len)
744
self.assertEqual(9, walk_len)
700
746
def test_two_branches(self):
701
747
self.make_import('c--0')
703
749
command = cmd_baz_import()
704
750
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
705
751
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
706
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
752
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
708
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
754
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
709
755
'c1', '0.2','branch')))
756
default_format = repository.RepositoryFormat.get_default_format()
710
757
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
711
self.assertEqual(20, walk_len)
758
self.assertEqual(22, walk_len)
713
760
def test_run_twice(self):
714
761
self.make_import('c--0')
715
762
command = cmd_baz_import()
716
763
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
717
764
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
719
766
def test_accepts_reuse_history(self):
720
767
self.make_import('c--0')
721
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
722
'demo@DONOTUSE', '.', '.')
724
def test_does_not_need_reuse_history(self):
725
self.make_import('c--0')
726
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
768
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
769
'demo@DONOTUSE', '.', '.'])
771
def test_does_not_need_reuse_history(self):
772
self.make_import('c--0')
773
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
776
def test_does_not_need_reuse_history(self):
777
self.make_import('c--0')
778
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
781
def test_encoding_flag(self):
782
self.make_import('c--0')
783
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
785
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
786
Branch.open(os.path.join(self._tmpdir,
787
'output/c/+trunk')).revision_history())
788
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output2'),
789
'demo@DONOTUSE', '--encoding', 'utf-8'])
790
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
791
Branch.open(os.path.join(self._tmpdir,
792
'output2/c/+trunk')).revision_history())
793
self.run_bzr(['baz-import-branch', os.path.join(self._tmpdir,
794
'output3'), 'demo@DONOTUSE/c--0'])
795
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
796
Branch.open(os.path.join(self._tmpdir,
797
'output3')).revision_history())
798
self.run_bzr(['baz-import-branch', os.path.join(self._tmpdir,
799
'output4'), 'demo@DONOTUSE/c--0', '--encoding', 'utf-8'])
800
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
801
Branch.open(os.path.join(self._tmpdir,
802
'output4')).revision_history())