~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2006-10-11 00:23:23 UTC
  • mfrom: (2070 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2071.
  • Revision ID: john@arbash-meinel.com-20061011002323-82ba88c293d7caff
[merge] bzr.dev 2070

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007 Canonical Ltd
 
1
# Copyright (C) 2006 by Canonical Ltd
 
2
# -*- coding: utf-8 -*-
2
3
#
3
4
# This program is free software; you can redistribute it and/or modify
4
5
# it under the terms of the GNU General Public License as published by
20
21
import sys
21
22
 
22
23
import bzrlib
23
 
from bzrlib import (
24
 
    bzrdir,
25
 
    repository,
26
 
    )
 
24
from bzrlib import repository
27
25
from bzrlib.osutils import format_date
28
26
from bzrlib.tests import TestSkipped
29
27
from bzrlib.tests.blackbox import ExternalBase
44
42
        transport = self.get_transport()
45
43
 
46
44
        # Create initial standalone branch
47
 
        tree1 = self.make_branch_and_tree('standalone', 'weave')
 
45
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
46
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirFormat6())
 
47
        tree1 = self.make_branch_and_tree('standalone')
 
48
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
48
49
        self.build_tree(['standalone/a'])
49
50
        tree1.add('a')
50
51
        branch1 = tree1.branch
133
134
        # Branch and bind to standalone, needs upgrade to metadir
134
135
        # (creates backup as unknown)
135
136
        branch1.bzrdir.sprout('bound')
136
 
        knit1_format = bzrdir.format_registry.make_bzrdir('knit')
 
137
        knit1_format = bzrlib.bzrdir.BzrDirMetaFormat1()
 
138
        knit1_format.repository_format = repository.RepositoryFormatKnit1()
137
139
        bzrlib.upgrade.upgrade('bound', knit1_format)
138
140
        branch3 = bzrlib.bzrdir.BzrDir.open('bound').open_branch()
139
141
        branch3.bind(branch1)
150
152
Format:
151
153
       control: Meta directory format 1
152
154
  working tree: %s
153
 
        branch: %s
 
155
        branch: Branch format 5
154
156
    repository: %s
155
157
 
156
158
In the working tree:
176
178
       branch1.bzrdir.root_transport.base,
177
179
       branch1.bzrdir.root_transport.base,
178
180
       bound_tree._format.get_format_description(),      
179
 
       branch3._format.get_format_description(),
180
181
       branch3.repository._format.get_format_description(),
181
182
       datestring_first, datestring_first,
182
183
       # poking at _revision_store isn't all that clean, but neither is
187
188
        self.assertEqual('', err)
188
189
 
189
190
        # Checkout standalone (same as above, but does not have parent set)
190
 
        branch4 = bzrlib.bzrdir.BzrDir.create_branch_convenience('checkout',
191
 
            format=knit1_format)
 
191
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
192
        bzrlib.bzrdir.BzrDirFormat.set_default_format(knit1_format)
 
193
        branch4 = bzrlib.bzrdir.BzrDir.create_branch_convenience('checkout')
 
194
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
192
195
        branch4.bind(branch1)
193
196
        branch4.bzrdir.open_workingtree().update()
194
197
        out, err = self.runbzr('info checkout --verbose')
235
238
        self.assertEqual('', err)
236
239
 
237
240
        # Lightweight checkout (same as above, different branch and repository)
238
 
        tree5 = branch1.create_checkout('lightcheckout', lightweight=True)
 
241
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
242
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
 
243
        transport.mkdir('lightcheckout')
 
244
        dir5 = bzrlib.bzrdir.BzrDirMetaFormat1().initialize('lightcheckout')
 
245
        bzrlib.branch.BranchReferenceFormat().initialize(dir5, branch1)
 
246
        dir5.create_workingtree()
 
247
        tree5 = dir5.open_workingtree()
 
248
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
239
249
        branch5 = tree5.branch
240
250
        out, err = self.runbzr('info lightcheckout')
241
251
        self.assertEqualDiff(
245
255
 
246
256
Format:
247
257
       control: Meta directory format 1
248
 
  working tree: Working tree format 4
 
258
  working tree: Working tree format 3
249
259
        branch: Branch format 4
250
260
    repository: Weave repository format 6
251
261
 
426
436
 
427
437
Format:
428
438
       control: Meta directory format 1
429
 
  working tree: Working tree format 4
 
439
  working tree: Working tree format 3
430
440
        branch: Branch format 4
431
441
    repository: Weave repository format 6
432
442
 
460
470
 
461
471
    def test_info_standalone_no_tree(self):
462
472
        # create standalone branch without a working tree
463
 
        format = bzrdir.format_registry.make_bzrdir('default')
464
473
        branch = self.make_branch('branch')
465
474
        repo = branch.repository
466
475
        out, err = self.runbzr('info branch')
470
479
 
471
480
Format:
472
481
       control: Meta directory format 1
473
 
        branch: %s
 
482
        branch: Branch format 5
474
483
    repository: %s
475
484
 
476
485
Branch history:
480
489
         0 revisions
481
490
         0 KiB
482
491
""" % (branch.bzrdir.root_transport.base,
483
 
       format.get_branch_format().get_format_description(),
484
 
       format.repository_format.get_format_description(),
 
492
       repo._format.get_format_description(),
485
493
       ), out)
486
494
        self.assertEqual('', err)
487
495
 
488
496
    def test_info_shared_repository(self):
489
 
        format = bzrdir.format_registry.make_bzrdir('knit')
 
497
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
498
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
490
499
        transport = self.get_transport()
491
500
 
492
501
        # Create shared repository
493
 
        repo = self.make_repository('repo', shared=True, format=format)
 
502
        repo = self.make_repository('repo', shared=True)
494
503
        repo.set_make_working_trees(False)
495
504
        out, err = self.runbzr('info repo')
496
505
        self.assertEqualDiff(
505
514
         0 revisions
506
515
         0 KiB
507
516
""" % (repo.bzrdir.root_transport.base,
508
 
       format.repository_format.get_format_description(),
 
517
       repo._format.get_format_description(),
509
518
       ), out)
510
519
        self.assertEqual('', err)
511
520
 
512
521
        # Create branch inside shared repository
513
522
        repo.bzrdir.root_transport.mkdir('branch')
514
 
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch',
515
 
            format=format)
 
523
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch')
516
524
        out, err = self.runbzr('info repo/branch')
517
525
        self.assertEqualDiff(
518
526
"""Location:
521
529
 
522
530
Format:
523
531
       control: Meta directory format 1
524
 
        branch: %s
 
532
        branch: Branch format 5
525
533
    repository: %s
526
534
 
527
535
Branch history:
531
539
         0 revisions
532
540
         0 KiB
533
541
""" % (repo.bzrdir.root_transport.base,
534
 
       format.get_branch_format().get_format_description(),
535
 
       format.repository_format.get_format_description(),
 
542
       repo._format.get_format_description(),
536
543
       ), out)
537
544
        self.assertEqual('', err)
538
545
 
539
546
        # Create lightweight checkout
540
547
        transport.mkdir('tree')
541
548
        transport.mkdir('tree/lightcheckout')
542
 
        tree2 = branch1.create_checkout('tree/lightcheckout', 
543
 
            lightweight=True)
 
549
        dir2 = bzrlib.bzrdir.BzrDirMetaFormat1().initialize('tree/lightcheckout')
 
550
        bzrlib.branch.BranchReferenceFormat().initialize(dir2, branch1)
 
551
        dir2.create_workingtree()
 
552
        tree2 = dir2.open_workingtree()
544
553
        branch2 = tree2.branch
545
 
        self.assertCheckoutStatusOutput('tree/lightcheckout', tree2, 
546
 
                   shared_repo=repo)
 
554
        self.assertCheckoutStatusOutput('tree/lightcheckout', tree2, shared_repo=repo)
547
555
 
548
556
        # Create normal checkout
549
557
        tree3 = branch1.create_checkout('tree/checkout')
565
573
 
566
574
Format:
567
575
       control: Meta directory format 1
568
 
  working tree: Working tree format 4
569
 
        branch: %s
 
576
  working tree: Working tree format 3
 
577
        branch: Branch format 5
570
578
    repository: %s
571
579
 
572
580
In the working tree:
591
599
         %d KiB
592
600
""" % (tree2.bzrdir.root_transport.base,
593
601
       repo.bzrdir.root_transport.base,
594
 
       format.get_branch_format().get_format_description(),
595
 
       format.repository_format.get_format_description(),
 
602
       repo._format.get_format_description(),
596
603
       datestring_first, datestring_first,
597
604
       # poking at _revision_store isn't all that clean, but neither is
598
605
       # having the ui test dependent on the exact overhead of a given store.
609
616
 
610
617
Format:
611
618
       control: Meta directory format 1
612
 
  working tree: Working tree format 4
613
 
        branch: %s
 
619
  working tree: Working tree format 3
 
620
        branch: Branch format 5
614
621
    repository: %s
615
622
 
616
623
Branch is out of date: missing 1 revision.
633
640
         0 KiB
634
641
""" % (tree3.bzrdir.root_transport.base,
635
642
       branch1.bzrdir.root_transport.base,
636
 
       format.get_branch_format().get_format_description(),
637
 
       format.repository_format.get_format_description(),
 
643
       repo._format.get_format_description(),
638
644
       ), out)
639
645
        self.assertEqual('', err)
640
646
 
650
656
 
651
657
Format:
652
658
       control: Meta directory format 1
653
 
  working tree: Working tree format 4
654
 
        branch: %s
 
659
  working tree: Working tree format 3
 
660
        branch: Branch format 5
655
661
    repository: %s
656
662
 
657
663
In the working tree:
675
681
         1 revision
676
682
         %d KiB
677
683
""" % (tree3.bzrdir.root_transport.base, branch1.bzrdir.root_transport.base,
678
 
       format.get_branch_format().get_format_description(),
679
 
       format.repository_format.get_format_description(),
 
684
       repo._format.get_format_description(),
680
685
       datestring_first, datestring_first,
681
686
       # poking at _revision_store isn't all that clean, but neither is
682
687
       # having the ui test dependent on the exact overhead of a given store.
697
702
 
698
703
Format:
699
704
       control: Meta directory format 1
700
 
  working tree: Working tree format 4
701
 
        branch: %s
 
705
  working tree: Working tree format 3
 
706
        branch: Branch format 5
702
707
    repository: %s
703
708
 
704
709
Working tree is out of date: missing 1 revision.
725
730
         %d KiB
726
731
""" % (tree2.bzrdir.root_transport.base,
727
732
       repo.bzrdir.root_transport.base,
728
 
       format.get_branch_format().get_format_description(),
729
 
       format.repository_format.get_format_description(),
 
733
       repo._format.get_format_description(),
730
734
       datestring_first, datestring_last,
731
735
       # poking at _revision_store isn't all that clean, but neither is
732
736
       # having the ui test dependent on the exact overhead of a given store.
743
747
 
744
748
Format:
745
749
       control: Meta directory format 1
746
 
        branch: %s
 
750
        branch: Branch format 5
747
751
    repository: %s
748
752
 
749
753
Branch history:
757
761
         2 revisions
758
762
         %d KiB
759
763
""" % (repo.bzrdir.root_transport.base,
760
 
       format.get_branch_format().get_format_description(),
761
 
       format.repository_format.get_format_description(),
 
764
       repo._format.get_format_description(),
762
765
       datestring_first, datestring_last,
763
766
       # poking at _revision_store isn't all that clean, but neither is
764
767
       # having the ui test dependent on the exact overhead of a given store.
780
783
         2 revisions
781
784
         %d KiB
782
785
""" % (repo.bzrdir.root_transport.base,
783
 
       format.repository_format.get_format_description(),
 
786
       repo._format.get_format_description(),
784
787
       # poking at _revision_store isn't all that clean, but neither is
785
788
       # having the ui test dependent on the exact overhead of a given store.
786
789
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
787
790
       ), out)
788
791
        self.assertEqual('', err)
789
792
 
 
793
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
 
794
 
790
795
    def test_info_shared_repository_with_trees(self):
791
 
        format = bzrdir.format_registry.make_bzrdir('knit')
 
796
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
797
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
792
798
        transport = self.get_transport()
793
799
 
794
800
        # Create shared repository with working trees
795
 
        repo = self.make_repository('repo', shared=True, format=format)
 
801
        repo = self.make_repository('repo', shared=True)
796
802
        repo.set_make_working_trees(True)
797
803
        out, err = self.runbzr('info repo')
798
804
        self.assertEqualDiff(
809
815
         0 revisions
810
816
         0 KiB
811
817
""" % (repo.bzrdir.root_transport.base,
812
 
       format.repository_format.get_format_description(),
 
818
       repo._format.get_format_description(),
813
819
       ), out)
814
820
        self.assertEqual('', err)
815
821
 
816
822
        # Create two branches
817
823
        repo.bzrdir.root_transport.mkdir('branch1')
818
 
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch1',
819
 
            format=format)
 
824
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch1')
820
825
        branch2 = branch1.bzrdir.sprout('repo/branch2').open_branch()
821
826
 
822
827
        # Empty first branch
829
834
Format:
830
835
       control: Meta directory format 1
831
836
  working tree: Working tree format 3
832
 
        branch: %s
 
837
        branch: Branch format 5
833
838
    repository: %s
834
839
 
835
840
In the working tree:
850
855
         0 revisions
851
856
         0 KiB
852
857
""" % (repo.bzrdir.root_transport.base,
853
 
       format.get_branch_format().get_format_description(),
854
 
       format.repository_format.get_format_description(),
 
858
       repo._format.get_format_description(),
855
859
       ), out)
856
860
        self.assertEqual('', err)
857
861
 
871
875
Format:
872
876
       control: Meta directory format 1
873
877
  working tree: Working tree format 3
874
 
        branch: %s
 
878
        branch: Branch format 5
875
879
    repository: %s
876
880
 
877
881
In the working tree:
894
898
         1 revision
895
899
         %d KiB
896
900
""" % (repo.bzrdir.root_transport.base,
897
 
       format.get_branch_format().get_format_description(),
898
 
       format.repository_format.get_format_description(),
 
901
       repo._format.get_format_description(),
899
902
       datestring_first, datestring_first,
900
903
       # poking at _revision_store isn't all that clean, but neither is
901
904
       # having the ui test dependent on the exact overhead of a given store.
916
919
Format:
917
920
       control: Meta directory format 1
918
921
  working tree: Working tree format 3
919
 
        branch: %s
 
922
        branch: Branch format 5
920
923
    repository: %s
921
924
 
922
925
In the working tree:
938
941
         %d KiB
939
942
""" % (repo.bzrdir.root_transport.base,
940
943
       branch1.bzrdir.root_transport.base,
941
 
       format.get_branch_format().get_format_description(),
942
 
       format.repository_format.get_format_description(),
 
944
       repo._format.get_format_description(),
943
945
       # poking at _revision_store isn't all that clean, but neither is
944
946
       # having the ui test dependent on the exact overhead of a given store.
945
947
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
961
963
Format:
962
964
       control: Meta directory format 1
963
965
  working tree: Working tree format 3
964
 
        branch: %s
 
966
        branch: Branch format 5
965
967
    repository: %s
966
968
 
967
969
In the working tree:
985
987
         %d KiB
986
988
""" % (repo.bzrdir.root_transport.base,
987
989
       branch1.bzrdir.root_transport.base,
988
 
       format.get_branch_format().get_format_description(),
989
 
       format.repository_format.get_format_description(),
 
990
       repo._format.get_format_description(),
990
991
       datestring_first, datestring_first,
991
992
       # poking at _revision_store isn't all that clean, but neither is
992
993
       # having the ui test dependent on the exact overhead of a given store.
1010
1011
         1 revision
1011
1012
         %d KiB
1012
1013
""" % (repo.bzrdir.root_transport.base,
1013
 
       format.repository_format.get_format_description(),
 
1014
       repo._format.get_format_description(),
1014
1015
       # poking at _revision_store isn't all that clean, but neither is
1015
1016
       # having the ui test dependent on the exact overhead of a given store.
1016
1017
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
1017
1018
       ),
1018
1019
       out)
1019
1020
        self.assertEqual('', err)
 
1021
 
 
1022
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
1020
1023
    
1021
1024
    def test_info_shared_repository_with_tree_in_root(self):
1022
 
        format = bzrdir.format_registry.make_bzrdir('knit')
 
1025
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
 
1026
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
1023
1027
        transport = self.get_transport()
1024
1028
 
1025
1029
        # Create shared repository with working trees
1026
 
        repo = self.make_repository('repo', shared=True, format=format)
 
1030
        repo = self.make_repository('repo', shared=True)
1027
1031
        repo.set_make_working_trees(True)
1028
1032
        out, err = self.runbzr('info repo')
1029
1033
        self.assertEqualDiff(
1040
1044
         0 revisions
1041
1045
         0 KiB
1042
1046
""" % (repo.bzrdir.root_transport.base,
1043
 
       format.repository_format.get_format_description(),
 
1047
       repo._format.get_format_description(),
1044
1048
       ), out)
1045
1049
        self.assertEqual('', err)
1046
1050
 
1057
1061
Format:
1058
1062
       control: Meta directory format 1
1059
1063
  working tree: Working tree format 3
1060
 
        branch: %s
 
1064
        branch: Branch format 5
1061
1065
    repository: %s
1062
1066
 
1063
1067
In the working tree:
1077
1081
         0 revisions
1078
1082
         0 KiB
1079
1083
""" % (repo.bzrdir.root_transport.base,
1080
 
       format.get_branch_format().get_format_description(),
1081
 
       format.repository_format.get_format_description(),
 
1084
       repo._format.get_format_description(),
1082
1085
       ), out)
1083
1086
        self.assertEqual('', err)
1084
1087
 
 
1088
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
 
1089
 
1085
1090
    def assertCheckoutStatusOutput(self, 
1086
1091
        command_string, lco_tree, shared_repo=None,
1087
1092
        repo_branch=None,
1157
1162
Format:
1158
1163
       control: Meta directory format 1
1159
1164
  working tree: %s
1160
 
        branch: %s
 
1165
        branch: Branch format 5
1161
1166
    repository: %s
1162
1167
%s
1163
1168
In the working tree:
1179
1184
""" %  (tree_data,
1180
1185
        branch_data,
1181
1186
        lco_tree._format.get_format_description(),
1182
 
        lco_tree.branch._format.get_format_description(),
1183
1187
        lco_tree.branch.repository._format.get_format_description(),
1184
1188
        expected_lock_output,
1185
1189
        verbose_info,