~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_info.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""Tests for the info command of bzr."""
19
19
 
 
20
import os
20
21
import sys
21
22
 
22
23
import bzrlib
23
24
from bzrlib import (
24
25
    bzrdir,
 
26
    osutils,
25
27
    repository,
 
28
    urlutils,
26
29
    )
27
30
from bzrlib.osutils import format_date
28
31
from bzrlib.tests import TestSkipped
48
51
        self.build_tree(['standalone/a'])
49
52
        tree1.add('a')
50
53
        branch1 = tree1.branch
 
54
 
 
55
        out, err = self.run_bzr('info standalone')
 
56
        self.assertEqualDiff(
 
57
"""Standalone tree (format: weave)
 
58
Location:
 
59
  branch root: standalone
 
60
""", out)
 
61
        self.assertEqual('', err)
 
62
 
51
63
        out, err = self.run_bzr('info standalone -v')
52
64
        self.assertEqualDiff(
53
65
"""Standalone tree (format: weave)
54
66
Location:
55
 
  branch root: %s
 
67
  branch root: standalone
56
68
 
57
69
Format:
58
70
       control: All-in-one format 6
77
89
Repository:
78
90
         0 revisions
79
91
         0 KiB
80
 
""" % branch1.bzrdir.root_transport.base, out)
 
92
""", out)
81
93
        self.assertEqual('', err)
82
94
        tree1.commit('commit one')
83
95
        rev = branch1.repository.get_revision(branch1.revision_history()[0])
86
98
        # Branch standalone with push location
87
99
        branch2 = branch1.bzrdir.sprout('branch').open_branch()
88
100
        branch2.set_push_location(branch1.bzrdir.root_transport.base)
 
101
 
 
102
        out, err = self.run_bzr('info branch')
 
103
        self.assertEqualDiff(
 
104
"""Standalone tree (format: weave)
 
105
Location:
 
106
  branch root: branch
 
107
 
 
108
Related branches:
 
109
    push branch: standalone
 
110
  parent branch: standalone
 
111
""", out)
 
112
        self.assertEqual('', err)
 
113
 
89
114
        out, err = self.run_bzr('info branch --verbose')
90
115
        self.assertEqualDiff(
91
116
"""Standalone tree (format: weave)
92
117
Location:
93
 
  branch root: %s
 
118
  branch root: branch
94
119
 
95
120
Related branches:
96
 
      parent branch: %s
97
 
  publish to branch: %s
 
121
    push branch: standalone
 
122
  parent branch: standalone
98
123
 
99
124
Format:
100
125
       control: All-in-one format 6
122
147
Repository:
123
148
         1 revision
124
149
         %d KiB
125
 
""" % (branch2.bzrdir.root_transport.base,
126
 
       branch1.bzrdir.root_transport.base,
127
 
       branch1.bzrdir.root_transport.base,
128
 
       datestring_first, datestring_first,
 
150
""" % (datestring_first, datestring_first,
129
151
       # poking at _revision_store isn't all that clean, but neither is
130
152
       # having the ui test dependent on the exact overhead of a given store.
131
153
       branch2.repository._revision_store.total_size(
145
167
        self.assertEqualDiff(
146
168
"""Checkout (format: knit)
147
169
Location:
148
 
       checkout root: %s
149
 
  checkout of branch: %s
 
170
       checkout root: bound
 
171
  checkout of branch: standalone
150
172
 
151
173
Related branches:
152
 
  parent branch: %s
 
174
  parent branch: standalone
153
175
 
154
176
Format:
155
177
       control: Meta directory format 1
177
199
Repository:
178
200
         1 revision
179
201
         %d KiB
180
 
""" % (branch3.bzrdir.root_transport.base,
181
 
       branch1.bzrdir.root_transport.base,
182
 
       branch1.bzrdir.root_transport.base,
183
 
       bound_tree._format.get_format_description(),      
 
202
""" % (bound_tree._format.get_format_description(),
184
203
       branch3._format.get_format_description(),
185
204
       branch3.repository._format.get_format_description(),
186
205
       datestring_first, datestring_first,
200
219
        self.assertEqualDiff(
201
220
"""Checkout (format: knit)
202
221
Location:
203
 
       checkout root: %s
204
 
  checkout of branch: %s
 
222
       checkout root: checkout
 
223
  checkout of branch: standalone
205
224
 
206
225
Format:
207
226
       control: Meta directory format 1
229
248
Repository:
230
249
         1 revision
231
250
         %d KiB
232
 
""" % (branch4.bzrdir.root_transport.base,
233
 
       branch1.bzrdir.root_transport.base,
234
 
       branch4.repository._format.get_format_description(),
 
251
""" % (branch4.repository._format.get_format_description(),
235
252
       datestring_first, datestring_first,
236
253
       # poking at _revision_store isn't all that clean, but neither is
237
254
       # having the ui test dependent on the exact overhead of a given store.
247
264
        self.assertEqualDiff(
248
265
"""Lightweight checkout (format: dirstate or dirstate-tags)
249
266
Location:
250
 
  light checkout root: %s
251
 
   checkout of branch: %s
 
267
  light checkout root: lightcheckout
 
268
   checkout of branch: standalone
252
269
 
253
270
Format:
254
271
       control: Meta directory format 1
276
293
Repository:
277
294
         1 revision
278
295
         0 KiB
279
 
""" % (tree5.bzrdir.root_transport.base,
280
 
       branch1.bzrdir.root_transport.base,
281
 
       datestring_first, datestring_first,
282
 
       ), out)
 
296
""" % (datestring_first, datestring_first,), out)
283
297
        self.assertEqual('', err)
284
298
 
285
299
        # Update initial standalone branch
294
308
        self.assertEqualDiff(
295
309
"""Standalone tree (format: weave)
296
310
Location:
297
 
  branch root: %s
 
311
  branch root: branch
298
312
 
299
313
Related branches:
300
 
      parent branch: %s
301
 
  publish to branch: %s
 
314
    push branch: standalone
 
315
  parent branch: standalone
302
316
 
303
317
Format:
304
318
       control: All-in-one format 6
326
340
Repository:
327
341
         1 revision
328
342
         0 KiB
329
 
""" % (branch2.bzrdir.root_transport.base,
330
 
       branch1.bzrdir.root_transport.base,
331
 
       branch1.bzrdir.root_transport.base,
332
 
       datestring_first, datestring_first,
 
343
""" % (datestring_first, datestring_first,
333
344
       ), out)
334
345
        self.assertEqual('', err)
335
346
 
338
349
        self.assertEqualDiff(
339
350
"""Checkout (format: knit)
340
351
Location:
341
 
       checkout root: %s
342
 
  checkout of branch: %s
 
352
       checkout root: bound
 
353
  checkout of branch: standalone
343
354
 
344
355
Related branches:
345
 
  parent branch: %s
 
356
  parent branch: standalone
346
357
 
347
358
Format:
348
359
       control: Meta directory format 1
372
383
Repository:
373
384
         1 revision
374
385
         %d KiB
375
 
""" % (branch3.bzrdir.root_transport.base,
376
 
       branch1.bzrdir.root_transport.base,
377
 
       branch1.bzrdir.root_transport.base,
378
 
       branch3.repository._format.get_format_description(),
 
386
""" % (branch3.repository._format.get_format_description(),
379
387
       datestring_first, datestring_first,
380
388
       # poking at _revision_store isn't all that clean, but neither is
381
389
       # having the ui test dependent on the exact overhead of a given store.
389
397
        self.assertEqualDiff(
390
398
"""Checkout (format: knit)
391
399
Location:
392
 
       checkout root: %s
393
 
  checkout of branch: %s
 
400
       checkout root: checkout
 
401
  checkout of branch: standalone
394
402
 
395
403
Format:
396
404
       control: Meta directory format 1
420
428
Repository:
421
429
         1 revision
422
430
         %d KiB
423
 
""" % (branch4.bzrdir.root_transport.base,
424
 
       branch1.bzrdir.root_transport.base,
425
 
       branch4.repository._format.get_format_description(),
 
431
""" % (branch4.repository._format.get_format_description(),
426
432
       datestring_first, datestring_first,
427
433
       # poking at _revision_store isn't all that clean, but neither is
428
434
       # having the ui test dependent on the exact overhead of a given store.
436
442
        self.assertEqualDiff(
437
443
"""Lightweight checkout (format: dirstate or dirstate-tags)
438
444
Location:
439
 
  light checkout root: %s
440
 
   checkout of branch: %s
 
445
  light checkout root: lightcheckout
 
446
   checkout of branch: standalone
441
447
 
442
448
Format:
443
449
       control: Meta directory format 1
467
473
Repository:
468
474
         2 revisions
469
475
         0 KiB
470
 
""" % (tree5.bzrdir.root_transport.base,
471
 
       branch1.bzrdir.root_transport.base,
472
 
       datestring_first, datestring_last,
473
 
       ), out)
 
476
""" % (datestring_first, datestring_last,), out)
474
477
        self.assertEqual('', err)
475
478
 
476
479
    def test_info_standalone_no_tree(self):
482
485
        self.assertEqualDiff(
483
486
"""Standalone branch (format: dirstate or knit)
484
487
Location:
485
 
  branch root: %s
 
488
  branch root: branch
486
489
 
487
490
Format:
488
491
       control: Meta directory format 1
496
499
Repository:
497
500
         0 revisions
498
501
         0 KiB
499
 
""" % (branch.bzrdir.root_transport.base,
500
 
       format.get_branch_format().get_format_description(),
 
502
""" % (format.get_branch_format().get_format_description(),
501
503
       format.repository_format.get_format_description(),
502
504
       ), out)
503
505
        self.assertEqual('', err)
522
524
Repository:
523
525
         0 revisions
524
526
         0 KiB
525
 
""" % (repo.bzrdir.root_transport.base,
526
 
       format.repository_format.get_format_description(),
 
527
""" % ('repo', format.repository_format.get_format_description(),
527
528
       ), out)
528
529
        self.assertEqual('', err)
529
530
 
535
536
        self.assertEqualDiff(
536
537
"""Repository branch (format: dirstate or knit)
537
538
Location:
538
 
  shared repository: %s
539
 
  repository branch: branch
 
539
  shared repository: repo
 
540
  repository branch: repo/branch
540
541
 
541
542
Format:
542
543
       control: Meta directory format 1
550
551
Repository:
551
552
         0 revisions
552
553
         0 KiB
553
 
""" % (repo.bzrdir.root_transport.base,
554
 
       format.get_branch_format().get_format_description(),
 
554
""" % (format.get_branch_format().get_format_description(),
555
555
       format.repository_format.get_format_description(),
556
556
       ), out)
557
557
        self.assertEqual('', err)
580
580
        self.assertEqualDiff(
581
581
"""Lightweight checkout (format: dirstate or dirstate-tags)
582
582
Location:
583
 
  light checkout root: %s
584
 
   checkout of branch: %s
585
 
    shared repository: %s
 
583
  light checkout root: tree/lightcheckout
 
584
   checkout of branch: repo/branch
 
585
    shared repository: repo
586
586
 
587
587
Format:
588
588
       control: Meta directory format 1
610
610
Repository:
611
611
         1 revision
612
612
         %d KiB
613
 
""" % (tree2.bzrdir.root_transport.base,
614
 
       tree2.branch.bzrdir.root_transport.base,
615
 
       repo.bzrdir.root_transport.base,
616
 
       format.get_branch_format().get_format_description(),
 
613
""" % (format.get_branch_format().get_format_description(),
617
614
       format.repository_format.get_format_description(),
618
615
       datestring_first, datestring_first,
619
616
       # poking at _revision_store isn't all that clean, but neither is
627
624
        self.assertEqualDiff(
628
625
"""Checkout (format: dirstate)
629
626
Location:
630
 
       checkout root: %s
631
 
  checkout of branch: %s
 
627
       checkout root: tree/checkout
 
628
  checkout of branch: repo/branch
632
629
 
633
630
Format:
634
631
       control: Meta directory format 1
655
652
Repository:
656
653
         0 revisions
657
654
         0 KiB
658
 
""" % (tree3.bzrdir.root_transport.base,
659
 
       branch1.bzrdir.root_transport.base,
660
 
       format.get_branch_format().get_format_description(),
 
655
""" % (format.get_branch_format().get_format_description(),
661
656
       format.repository_format.get_format_description(),
662
657
       ), out)
663
658
        self.assertEqual('', err)
670
665
        self.assertEqualDiff(
671
666
"""Checkout (format: dirstate)
672
667
Location:
673
 
       checkout root: %s
674
 
  checkout of branch: %s
 
668
       checkout root: tree/checkout
 
669
  checkout of branch: repo/branch
675
670
 
676
671
Format:
677
672
       control: Meta directory format 1
699
694
Repository:
700
695
         1 revision
701
696
         %d KiB
702
 
""" % (tree3.bzrdir.root_transport.base, branch1.bzrdir.root_transport.base,
703
 
       format.get_branch_format().get_format_description(),
 
697
""" % (format.get_branch_format().get_format_description(),
704
698
       format.repository_format.get_format_description(),
705
699
       datestring_first, datestring_first,
706
700
       # poking at _revision_store isn't all that clean, but neither is
717
711
        self.assertEqualDiff(
718
712
"""Lightweight checkout (format: dirstate or dirstate-tags)
719
713
Location:
720
 
  light checkout root: %s
721
 
   checkout of branch: %s
722
 
    shared repository: %s
 
714
  light checkout root: tree/lightcheckout
 
715
   checkout of branch: repo/branch
 
716
    shared repository: repo
723
717
 
724
718
Format:
725
719
       control: Meta directory format 1
749
743
Repository:
750
744
         2 revisions
751
745
         %d KiB
752
 
""" % (tree2.bzrdir.root_transport.base,
753
 
       tree2.branch.bzrdir.root_transport.base,
754
 
       repo.bzrdir.root_transport.base,
755
 
       format.get_branch_format().get_format_description(),
 
746
""" % (format.get_branch_format().get_format_description(),
756
747
       format.repository_format.get_format_description(),
757
748
       datestring_first, datestring_last,
758
749
       # poking at _revision_store isn't all that clean, but neither is
766
757
        self.assertEqualDiff(
767
758
"""Repository branch (format: dirstate or knit)
768
759
Location:
769
 
  shared repository: %s
770
 
  repository branch: branch
 
760
  shared repository: repo
 
761
  repository branch: repo/branch
771
762
 
772
763
Format:
773
764
       control: Meta directory format 1
784
775
Repository:
785
776
         2 revisions
786
777
         %d KiB
787
 
""" % (repo.bzrdir.root_transport.base,
788
 
       format.get_branch_format().get_format_description(),
 
778
""" % (format.get_branch_format().get_format_description(),
789
779
       format.repository_format.get_format_description(),
790
780
       datestring_first, datestring_last,
791
781
       # poking at _revision_store isn't all that clean, but neither is
799
789
        self.assertEqualDiff(
800
790
"""Shared repository (format: dirstate or dirstate-tags or knit)
801
791
Location:
802
 
  shared repository: %s
 
792
  shared repository: repo
803
793
 
804
794
Format:
805
795
       control: Meta directory format 1
808
798
Repository:
809
799
         2 revisions
810
800
         %d KiB
811
 
""" % (repo.bzrdir.root_transport.base,
812
 
       format.repository_format.get_format_description(),
 
801
""" % (format.repository_format.get_format_description(),
813
802
       # poking at _revision_store isn't all that clean, but neither is
814
803
       # having the ui test dependent on the exact overhead of a given store.
815
804
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
827
816
        self.assertEqualDiff(
828
817
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
829
818
Location:
830
 
  shared repository: %s
 
819
  shared repository: repo
831
820
 
832
821
Format:
833
822
       control: Meta directory format 1
838
827
Repository:
839
828
         0 revisions
840
829
         0 KiB
841
 
""" % (repo.bzrdir.root_transport.base,
842
 
       format.repository_format.get_format_description(),
 
830
""" % (format.repository_format.get_format_description(),
843
831
       ), out)
844
832
        self.assertEqual('', err)
845
833
 
854
842
        self.assertEqualDiff(
855
843
"""Repository tree (format: knit)
856
844
Location:
857
 
  shared repository: %s
858
 
  repository branch: branch1
 
845
  shared repository: repo
 
846
  repository branch: repo/branch1
859
847
 
860
848
Format:
861
849
       control: Meta directory format 1
880
868
Repository:
881
869
         0 revisions
882
870
         0 KiB
883
 
""" % (repo.bzrdir.root_transport.base,
884
 
       format.get_branch_format().get_format_description(),
 
871
""" % (format.get_branch_format().get_format_description(),
885
872
       format.repository_format.get_format_description(),
886
873
       ), out)
887
874
        self.assertEqual('', err)
897
884
        self.assertEqualDiff(
898
885
"""Repository tree (format: knit)
899
886
Location:
900
 
  shared repository: %s
901
 
  repository branch: branch1
 
887
  shared repository: repo
 
888
  repository branch: repo/branch1
902
889
 
903
890
Format:
904
891
       control: Meta directory format 1
926
913
Repository:
927
914
         1 revision
928
915
         %d KiB
929
 
""" % (repo.bzrdir.root_transport.base,
930
 
       format.get_branch_format().get_format_description(),
 
916
""" % (format.get_branch_format().get_format_description(),
931
917
       format.repository_format.get_format_description(),
932
918
       datestring_first, datestring_first,
933
919
       # poking at _revision_store isn't all that clean, but neither is
941
927
        self.assertEqualDiff(
942
928
"""Repository tree (format: knit)
943
929
Location:
944
 
  shared repository: %s
945
 
  repository branch: branch2
 
930
  shared repository: repo
 
931
  repository branch: repo/branch2
946
932
 
947
933
Related branches:
948
 
  parent branch: %s
 
934
  parent branch: repo/branch1
949
935
 
950
936
Format:
951
937
       control: Meta directory format 1
970
956
Repository:
971
957
         1 revision
972
958
         %d KiB
973
 
""" % (repo.bzrdir.root_transport.base,
974
 
       branch1.bzrdir.root_transport.base,
975
 
       format.get_branch_format().get_format_description(),
 
959
""" % (format.get_branch_format().get_format_description(),
976
960
       format.repository_format.get_format_description(),
977
961
       # poking at _revision_store isn't all that clean, but neither is
978
962
       # having the ui test dependent on the exact overhead of a given store.
987
971
        self.assertEqualDiff(
988
972
"""Repository tree (format: knit)
989
973
Location:
990
 
  shared repository: %s
991
 
  repository branch: branch2
 
974
  shared repository: repo
 
975
  repository branch: repo/branch2
992
976
 
993
977
Related branches:
994
 
  parent branch: %s
 
978
  parent branch: repo/branch1
995
979
 
996
980
Format:
997
981
       control: Meta directory format 1
1019
1003
Repository:
1020
1004
         1 revision
1021
1005
         %d KiB
1022
 
""" % (repo.bzrdir.root_transport.base,
1023
 
       branch1.bzrdir.root_transport.base,
1024
 
       format.get_branch_format().get_format_description(),
 
1006
""" % (format.get_branch_format().get_format_description(),
1025
1007
       format.repository_format.get_format_description(),
1026
1008
       datestring_first, datestring_first,
1027
1009
       # poking at _revision_store isn't all that clean, but neither is
1035
1017
        self.assertEqualDiff(
1036
1018
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
1037
1019
Location:
1038
 
  shared repository: %s
 
1020
  shared repository: repo
1039
1021
 
1040
1022
Format:
1041
1023
       control: Meta directory format 1
1046
1028
Repository:
1047
1029
         1 revision
1048
1030
         %d KiB
1049
 
""" % (repo.bzrdir.root_transport.base,
1050
 
       format.repository_format.get_format_description(),
 
1031
""" % (format.repository_format.get_format_description(),
1051
1032
       # poking at _revision_store isn't all that clean, but neither is
1052
1033
       # having the ui test dependent on the exact overhead of a given store.
1053
1034
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
1066
1047
        self.assertEqualDiff(
1067
1048
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
1068
1049
Location:
1069
 
  shared repository: %s
 
1050
  shared repository: repo
1070
1051
 
1071
1052
Format:
1072
1053
       control: Meta directory format 1
1077
1058
Repository:
1078
1059
         0 revisions
1079
1060
         0 KiB
1080
 
""" % (repo.bzrdir.root_transport.base,
1081
 
       format.repository_format.get_format_description(),
 
1061
""" % (format.repository_format.get_format_description(),
1082
1062
       ), out)
1083
1063
        self.assertEqual('', err)
1084
1064
 
1090
1070
        self.assertEqualDiff(
1091
1071
"""Repository tree (format: knit)
1092
1072
Location:
1093
 
  shared repository: %s
1094
 
  repository branch: .
 
1073
  shared repository: repo
 
1074
  repository branch: repo
1095
1075
 
1096
1076
Format:
1097
1077
       control: Meta directory format 1
1116
1096
Repository:
1117
1097
         0 revisions
1118
1098
         0 KiB
1119
 
""" % (repo.bzrdir.root_transport.base,
1120
 
       format.get_branch_format().get_format_description(),
 
1099
""" % (format.get_branch_format().get_format_description(),
1121
1100
       format.repository_format.get_format_description(),
1122
1101
       ), out)
1123
1102
        self.assertEqual('', err)
1149
1128
        :param repo_locked: If true, expect the repository to be locked.
1150
1129
        :param verbose: If true, expect verbose output
1151
1130
        """
 
1131
        def friendly_location(url):
 
1132
            path = urlutils.unescape_for_display(url, 'ascii')
 
1133
            try:
 
1134
                return osutils.relpath(os.getcwd(), path)
 
1135
            except errors.PathNotChild:
 
1136
                return path
 
1137
 
1152
1138
        if tree_locked and sys.platform == 'win32':
1153
1139
            # We expect this to fail because of locking errors. (A write-locked
1154
1140
            # file cannot be read-locked in the same process).
1186
1172
        extra_space = ''
1187
1173
        if light_checkout:
1188
1174
            tree_data = ("  light checkout root: %s\n" %
1189
 
                lco_tree.bzrdir.root_transport.base)
 
1175
                friendly_location(lco_tree.bzrdir.root_transport.base))
1190
1176
            extra_space = ' '
1191
1177
        if lco_tree.branch.get_bound_location() is not None:
1192
1178
            tree_data += ("%s       checkout root: %s\n" % (extra_space,
1193
 
                lco_tree.branch.bzrdir.root_transport.base))
 
1179
                friendly_location(lco_tree.branch.bzrdir.root_transport.base)))
1194
1180
        if shared_repo is not None:
1195
1181
            branch_data = (
1196
1182
                "   checkout of branch: %s\n"
1197
1183
                "    shared repository: %s\n" %
1198
 
                (repo_branch.bzrdir.root_transport.base,
1199
 
                 shared_repo.bzrdir.root_transport.base))
 
1184
                (friendly_location(repo_branch.bzrdir.root_transport.base),
 
1185
                 friendly_location(shared_repo.bzrdir.root_transport.base)))
1200
1186
        elif repo_branch is not None:
1201
1187
            branch_data = (
1202
1188
                "%s  checkout of branch: %s\n" %
1203
1189
                (extra_space,
1204
 
                 repo_branch.bzrdir.root_transport.base))
 
1190
                 friendly_location(repo_branch.bzrdir.root_transport.base)))
1205
1191
        else:
1206
1192
            branch_data = ("   checkout of branch: %s\n" %
1207
1193
                lco_tree.branch.bzrdir.root_transport.base)
1404
1390
Repository:
1405
1391
         0 revisions
1406
1392
         0 KiB
1407
 
""" % (tree.bzrdir.root_transport.base,
1408
 
       tree.branch.repository._format.get_format_description(),
 
1393
""" % ('branch', tree.branch.repository._format.get_format_description(),
1409
1394
       ), out)
1410
1395
        self.assertEqual('', err)
1411
1396
        # L L L
1439
1424
Repository:
1440
1425
         0 revisions
1441
1426
         0 KiB
1442
 
""" % (tree.bzrdir.root_transport.base,
1443
 
       tree.branch.repository._format.get_format_description(),
 
1427
""" % ('branch', tree.branch.repository._format.get_format_description(),
1444
1428
       ), out)
1445
1429
        self.assertEqual('', err)
1446
1430
        tree.unlock()