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,
34
from bzrlib.errors import NoSuchRevision
26
from bzrlib.plugins.bzrtools import cmd_baz_import
27
from bzrlib.plugins.bzrtools.baz_import import (import_version,
36
32
from StringIO import StringIO
38
34
from testresources import (TestResource, TestLoader, OptimisingTestSuite,
42
from bzrtools.fai import namespace_previous
44
from bzrlib.plugins.bzrtools.fai import namespace_previous
38
from bzrlib.errors import NoSuchRevision
39
from bzrlib.plugins.bzrtools.fai import namespace_previous
45
40
from bzrlib.branch import Branch
69
64
pybaz.set_my_id("Test User<test@example.org>")
71
66
self.make_empty_import()
73
69
self._empty_tag = 'demo@DONOTUSE/c--empty-tag--0'
74
self._empty_tag_bzr = revision_id(self._empty_tag + '--base-0')
70
self._empty_tag_bzr = revision_id(self._empty_tag + '--base-0', None)
75
71
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
76
72
pybaz.Version(self._empty_tag))
78
74
self._empty_merged_tag = 'demo@DONOTUSE/c--empty-merged-tag--0'
79
self._empty_merged_tag_bzr_base = revision_id(self._empty_merged_tag
81
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
83
79
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
84
80
pybaz.Version(self._empty_merged_tag))
85
81
tree = pybaz.Revision(self._empty_merged_tag + '--base-0').get(
90
86
msg["summary"]="did a merge, yarh"
92
88
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
94
90
# tree, two commits, includes merge of other branch
95
91
self._empty_merged_tag_2 = 'demo@DONOTUSE/c--empty-tag-2--0'
96
92
self._empty_merged_tag_2_bzr_base = revision_id(
97
self._empty_merged_tag_2 + '--base-0')
93
self._empty_merged_tag_2 + '--base-0', None)
98
94
self._empty_merged_tag_2_bzr = revision_id(
99
self._empty_merged_tag_2 + '--patch-1')
95
self._empty_merged_tag_2 + '--patch-1', None)
100
96
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
101
97
pybaz.Version(self._empty_merged_tag_2))
102
98
tree = pybaz.Revision(self._empty_merged_tag_2 + '--base-0').get (
109
105
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
111
107
self._bad_id_tag = 'demo@DONOTUSE/c--bad-id--0'
112
self._bad_id_tag_bzr_base = revision_id(self._bad_id_tag + '--base-0')
113
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',
114
112
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
115
113
pybaz.Version(self._bad_id_tag))
116
114
tree = pybaz.Revision(self._bad_id_tag + '--base-0').get(
117
115
os.path.join(self._tmpdir, 'tree'))
118
116
from bzrlib.plugins.bzrtools.baz_import import add_file
119
add_file(os.path.join(self._tmpdir,'tree/path'), 'text',
117
add_file(os.path.join(self._tmpdir,'tree/path'), 'text',
120
118
'this_id/needs%escaping')
121
119
msg = tree.log_message()
122
120
msg["summary"] = "commit something which needs escaping."
130
128
def make_import_symlink(self):
131
129
self._import_symlink = 'demo@DONOTUSE/c--import-symlink--0'
132
130
self._import_symlink_bzr = revision_id(
133
self._import_symlink + '--base-0')
131
self._import_symlink + '--base-0', None)
134
132
os.mkdir(os.path.join(self._tmpdir, 'tree'))
135
133
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
136
134
self._import_symlink)
137
os.symlink('missing-file-name',
138
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)
139
137
tree.add_tag('alink')
140
138
id_file = open(os.path.join(tree, '.arch-ids', 'alink.id'), 'w')
141
139
id_file.write('symlink_tag\n')
143
141
msg = tree.log_message()
144
142
msg["summary"] = "Import with a symlink"
145
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"
146
151
shutil.rmtree(os.path.join(self._tmpdir, 'tree'))
148
153
def make_empty_import(self):
149
154
self._import = 'demo@DONOTUSE/c--import--0'
150
155
os.mkdir(os.path.join(self._tmpdir, 'tree'))
151
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
156
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
153
158
msg = tree.log_message()
154
159
msg["summary"] = "I am importing now"
155
160
tree.import_(msg)
156
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'))
158
173
def make_missing_ancestor(self):
159
174
self._archivegoneroot = os.path.join(self._tmpdir, 'archivegone')
160
175
self._archive = make_archive('demo-gone@DONOTUSE',
161
176
str(self._archivegoneroot))
162
177
self._missing_import = 'demo-gone@DONOTUSE/c--import--0'
163
self._missing_import_bzr = revision_id(self._missing_import
178
self._missing_import_bzr = revision_id(self._missing_import
165
180
self._missing_ancestor = 'demo@DONOTUSE/c--gone--0'
166
self._missing_ancestor_bzr = revision_id(self._missing_ancestor
181
self._missing_ancestor_bzr = revision_id(self._missing_ancestor
168
183
os.mkdir(os.path.join(self._tmpdir, 'tree'))
169
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
184
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
170
185
self._missing_import)
171
186
msg = tree.log_message()
172
187
msg["summary"] = "I am importing now"
177
192
pybaz.Version(self._missing_ancestor))
179
194
# make an import for testing history-reuse logic.
182
195
# note the use of a namespace layout here.
183
self._missing_import_imported = os.path.join(self._tmpdir,
196
self._missing_import_imported = os.path.join(self._tmpdir,
184
197
'archivegone-bzr')
185
198
os.mkdir(os.path.join(self._tmpdir, 'archivegone-bzr'))
186
199
os.mkdir(os.path.join(self._tmpdir, 'archivegone-bzr', 'c'))
187
import_version(os.path.join(self._tmpdir, 'archivegone-bzr',
200
import_version(os.path.join(self._tmpdir, 'archivegone-bzr',
189
pybaz.Version(self._missing_import),
202
pybaz.Version(self._missing_import), None)
191
203
# and make it inaccessible
192
204
pybaz.Archive('demo-gone@DONOTUSE').unregister()
194
206
def make_inbranch_continuation(self):
195
207
self._inbranch_tag = 'demo@DONOTUSE/c--inbranch-tag--0'
196
208
self._inbranch_tag_base = self._inbranch_tag + '--base-0'
197
self._inbranch_tag_base_bzr = revision_id(self._inbranch_tag_base)
209
self._inbranch_tag_base_bzr = revision_id(self._inbranch_tag_base,
198
211
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
199
212
pybaz.Version(self._inbranch_tag))
200
213
self._inbranch_tag_head = self._inbranch_tag + '--patch-1'
201
self._inbranch_tag_head_bzr = revision_id(self._inbranch_tag_head)
214
self._inbranch_tag_head_bzr = revision_id(self._inbranch_tag_head,
202
216
pybaz.Revision(self._inbranch_tag_base).make_continuation(
203
217
pybaz.Version(self._inbranch_tag))
219
233
TestCaseInTempDir.setUp(self)
220
234
ResourcedTestCase.setUpResources(self)
221
235
os.environ['HOME'] = self._baz._homedir
222
self.output = StringIO()
224
237
def tearDown(self):
225
238
ResourcedTestCase.tearDownResources(self)
226
239
TestCaseInTempDir.tearDown(self)
228
def collect(self, text):
229
self.output.write(text)
230
self.output.write("\n")
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)
232
255
def test_import_empty(self):
233
import_version('output', pybaz.Version(self._baz._import),
256
import_version('output', pybaz.Version(self._baz._import), None)
235
257
# expected results:
236
# one commit, no files, revision identifier of
258
# one commit, no files, revision identifier of
237
259
# 'demo@DONOTUSE_c--import--0--base-0'
238
260
branch = Branch.open('output')
239
261
repo = branch.repository
257
279
"Arch-1:demo@DONOTUSE%c--import--0--base-0")
259
281
def test_empty_tagged(self):
260
import_version('output', pybaz.Version(self._baz._empty_tag),
282
import_version('output', pybaz.Version(self._baz._empty_tag), None)
262
283
# expected results:
263
# two commits, no files, revision identifiers of
284
# two commits, no files, revision identifiers of
264
285
# 'demo@DONOTUSE_c--import--0--base-0' and
265
286
# self._baz._empty_tag_bzr
266
287
branch = Branch.open('output')
280
300
# and we should get some expected values:
281
301
self.assertEqual(rev.committer, "Test User<test@example.org>")
282
self.assertEqual(rev.message,
302
self.assertEqual(rev.message,
283
303
"tag of demo@DONOTUSE/c--import--0--base-0")
284
304
self.assertEqual(rev.revision_id, self._baz._empty_tag_bzr)
286
306
def test_empty_merged_tagged(self):
287
307
import_version('output', pybaz.Version(self._baz._empty_merged_tag),
289
309
# expected results:
290
# two commits, no files, revision identifiers of
310
# two commits, no files, revision identifiers of
291
311
# 'demo@DONOTUSE_c--import--0--base-0' and
292
312
# self._baz._empty_merged_tag_bzr_base
293
313
# self._baz._empty_merged_tag_bzr
301
321
self._baz._empty_merged_tag_bzr])
303
323
import_version('output2', pybaz.Version(self._baz._empty_merged_tag),
305
325
branch2 = Branch.open('output2')
306
326
repo2 = branch2.repository
307
327
# and import what we should be merged up against for checking with.
308
import_version('output3', pybaz.Version(self._baz._empty_tag),
328
import_version('output3', pybaz.Version(self._baz._empty_tag), None)
310
329
branch3 = Branch.open('output3')
312
331
self.assertEqual(branch.revision_history(), branch2.revision_history())
313
self.assertNotEqual(branch.revision_history(),
332
self.assertNotEqual(branch.revision_history(),
314
333
branch3.revision_history())
315
334
# check revisions in the history.
316
335
rev = repo.get_revision(self._baz._empty_merged_tag_bzr_base)
319
338
self.assertEqual(rev, rev2)
320
339
# and we should get some expected values:
321
340
self.assertEqual(rev.committer, "Test User<test@example.org>")
322
self.assertEqual(rev.message,
341
self.assertEqual(rev.message,
323
342
"tag of demo@DONOTUSE/c--import--0--base-0")
324
343
self.assertEqual(rev.revision_id, self._baz._empty_merged_tag_bzr_base)
325
344
self.assertEqual(['Arch-1:demo@DONOTUSE%c--import--0--base-0'],
338
357
self._baz._empty_merged_tag_bzr_base)
339
358
self.assertEqual(rev.parent_ids[1], self._baz._empty_tag_bzr)
341
# this tree should have nothing missing from that tree.
360
# this tree should have nothing missing from that tree.
342
361
# FIXME there is no code for this right now.
343
362
# self.assertEqual(branch.missing_revisions(branch3), [])
345
364
def test_merge_branch_with_merges(self):
346
365
import_version('output', pybaz.Version(self._baz._empty_merged_tag_2),
348
367
# expected results:
349
# two commits, no files, revision identifiers of
368
# two commits, no files, revision identifiers of
350
369
# 'demo@DONOTUSE_c--import--0--base-0' and
351
370
# self._baz._empty_merged_tag_2_bzr_base
352
371
# self._baz._empty_merged_tag_2_bzr
360
379
self._baz._empty_merged_tag_2_bzr])
362
381
import_version('output2', pybaz.Version(self._baz._empty_merged_tag_2),
364
383
branch2 = Branch.open('output2')
365
384
repo2 = branch2.repository
366
385
# and import what we should be merged up against for checking with.
367
386
import_version('output3', pybaz.Version(self._baz._empty_merged_tag),
369
388
branch3 = Branch.open('output3')
371
390
self.assertEqual(branch.revision_history(), branch2.revision_history())
372
self.assertNotEqual(branch.revision_history(),
391
self.assertNotEqual(branch.revision_history(),
373
392
branch3.revision_history())
374
393
# check revisions in the history.
375
394
rev = repo.get_revision(self._baz._empty_merged_tag_2_bzr_base)
378
397
self.assertEqual(rev, rev2)
379
398
# and we should get some expected values:
380
399
self.assertEqual(rev.committer, "Test User<test@example.org>")
381
self.assertEqual(rev.message,
400
self.assertEqual(rev.message,
382
401
"tag of demo@DONOTUSE/c--import--0--base-0")
383
self.assertEqual(rev.revision_id,
402
self.assertEqual(rev.revision_id,
384
403
self._baz._empty_merged_tag_2_bzr_base)
386
405
# check next revisions in the history.
397
416
self.assertEqual(rev.parent_ids[1],
398
417
self._baz._empty_merged_tag_bzr)
400
# this tree should have nothing missing from that tree.
419
# this tree should have nothing missing from that tree.
401
420
# FIXME there is no code for this right now.
402
421
# self.assertEqual(branch.missing_revisions(branch3), [])
404
423
def test_import_symlink(self):
405
424
import_version('output', pybaz.Version(self._baz._import_symlink),
407
426
# expected results:
408
# one commit, no files, revision identifier of
427
# two commits, no files, revision identifier of
409
428
# 'demo@DONOTUSE_c--import--0--base-0'
410
429
branch = Branch.open('output')
411
430
self.assertEqual(branch.revision_history(),
432
451
self.assertEqual(entry.kind, 'symlink')
433
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),
435
458
def test_missing_ancestor(self):
436
459
import_version('output', pybaz.Version(self._baz._missing_ancestor),
438
461
# expected results:
439
# one commits, no files, revision identifiers of
462
# one commits, no files, revision identifiers of
440
463
# 'demo@DONOTUSE_c--gone--0--base-0' and
441
464
# a merge of demo-gone@DONOTUSE%c--import--0
442
465
branch = Branch.open('output')
455
478
# and we should get some expected values:
456
479
self.assertEqual(rev.committer, "Test User<test@example.org>")
457
self.assertEqual(rev.message,
480
self.assertEqual(rev.message,
458
481
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
459
482
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
460
483
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
461
484
self.assertEqual(1, len(rev.parent_ids))
463
486
# must NOT be able to get the merged evision
464
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
487
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
465
488
self._baz._missing_import_bzr)
467
490
def test_missing_ancestor_reusing_history(self):
468
491
import_version('output', pybaz.Version(self._baz._missing_ancestor),
470
493
reuse_history_from=[self._baz._missing_import_imported])
471
494
# expected results:
472
# one commits, no files, revision identifiers of
473
# '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
474
497
# 'demo@DONOTUSE%c--gone--0--base-0'
475
498
branch = Branch.open('output')
476
499
self.assertEqual(branch.revision_history(),
493
516
# and we should get some expected values:
494
517
self.assertEqual(rev.committer, "Test User<test@example.org>")
495
self.assertEqual(rev.message,
518
self.assertEqual(rev.message,
496
519
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
497
520
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
498
521
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
499
522
self.assertEqual(1, len(rev.parent_ids))
501
524
def test_bad_file_id(self):
502
import_version('output', pybaz.Version(self._baz._bad_id_tag),
525
import_version('output', pybaz.Version(self._baz._bad_id_tag), None)
504
526
# expected results:
505
# three commits, one files, revision identifiers of
527
# three commits, one files, revision identifiers of
506
528
# 'demo@DONOTUSE_c--import--0--base-0' ,
507
529
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
508
530
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
517
539
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
519
541
def test_appending_revisions_already_present(self):
520
import_version('output', pybaz.Version(self._baz._bad_id_tag),
521
self.collect, max_count=2)
542
import_version('output', pybaz.Version(self._baz._bad_id_tag), None,
522
544
# expected results:
523
# three commits, one files, revision identifiers of
545
# three commits, one files, revision identifiers of
524
546
# 'demo@DONOTUSE_c--import--0--base-0' ,
525
547
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
526
548
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
548
569
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
550
571
def test_appending_revisions_all_already_present(self):
551
import_version('output', pybaz.Version(self._baz._bad_id_tag),
572
import_version('output', pybaz.Version(self._baz._bad_id_tag), None)
553
573
# expected results:
554
# three commits, one files, revision identifiers of
574
# three commits, one files, revision identifiers of
555
575
# 'demo@DONOTUSE_c--import--0--base-0' ,
556
576
# 'demo@DONOTUSE/c--bad-id--0--base-0' ,
557
577
# ''demo@DONOTUSE/c--bad-id--0--patch-1'
580
599
self.assertEqual('path', inv.id2path('x_this_id%2fneeds%25escaping'))
582
601
def test_inbranch_conversion(self):
583
import_version('output', pybaz.Version(self._baz._inbranch_tag),
602
import_version('output', pybaz.Version(self._baz._inbranch_tag), None)
585
603
# expected results:
586
# three commits, no files, revision identifiers of
604
# three commits, no files, revision identifiers of
587
605
# 'demo@DONOTUSE_c--import--0--base-0' and
588
606
# self._baz._inbranch_tag_base_bzr
589
607
# self._baz._inbranch_tag_head_bzr
594
612
self._baz._inbranch_tag_base_bzr,
595
613
self._baz._inbranch_tag_head_bzr])
597
import_version('output2', pybaz.Version(self._baz._inbranch_tag),
615
import_version('output2', pybaz.Version(self._baz._inbranch_tag), None)
599
616
branch2 = Branch.open('output2')
601
618
self.assertEqual(branch.revision_history(), branch2.revision_history())
602
619
# check revisions in the history.
603
620
rev = branch.repository.get_revision(self._baz._inbranch_tag_base_bzr)
621
638
self.assertEqual(rev.parent_ids,
622
639
[self._baz._inbranch_tag_base_bzr])
641
def test_no_commits_same_as_missing(self):
644
branch = bzrlib.bzrdir.BzrDir.create_branch_convenience(path)
645
import_version(path, pybaz.Version(self._baz._import), None)
647
# one commit, revision identifier of
648
# 'demo@DONOTUSE_c--import--0--base-0'
649
self.assertEqual(branch.revision_history(),
650
['Arch-1:demo@DONOTUSE%c--import--0--base-0'])
625
653
class TestNamespacePrevious(TestCase):
720
749
command = cmd_baz_import()
721
750
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
722
751
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
723
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
752
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
725
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
754
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
726
755
'c1', '0.2','branch')))
756
default_format = repository.RepositoryFormat.get_default_format()
757
if getattr(default_format, 'rich_root_data', False):
727
761
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
728
self.assertEqual(22, walk_len)
762
self.assertEqual(num_files, walk_len)
730
764
def test_run_twice(self):
731
765
self.make_import('c--0')
732
766
command = cmd_baz_import()
733
767
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
734
768
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
736
770
def test_accepts_reuse_history(self):
737
771
self.make_import('c--0')
738
772
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
739
773
'demo@DONOTUSE', '.', '.')
741
def test_does_not_need_reuse_history(self):
742
self.make_import('c--0')
743
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
775
def test_does_not_need_reuse_history(self):
776
self.make_import('c--0')
777
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
780
def test_does_not_need_reuse_history(self):
781
self.make_import('c--0')
782
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
785
def test_encoding_flag(self):
786
self.make_import('c--0')
787
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
789
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
790
Branch.open(os.path.join(self._tmpdir,
791
'output/c/+trunk')).revision_history())
792
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output2'),
793
'demo@DONOTUSE', '--encoding', 'utf-8')
794
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
795
Branch.open(os.path.join(self._tmpdir,
796
'output2/c/+trunk')).revision_history())
797
self.run_bzr('baz-import-branch', os.path.join(self._tmpdir, 'output3'),
798
'demo@DONOTUSE/c--0')
799
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
800
Branch.open(os.path.join(self._tmpdir,
801
'output3')).revision_history())
802
self.run_bzr('baz-import-branch', os.path.join(self._tmpdir,
803
'output4'), 'demo@DONOTUSE/c--0', '--encoding', 'utf-8')
804
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
805
Branch.open(os.path.join(self._tmpdir,
806
'output4')).revision_history())