~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_lazy_import.py

  • Committer: Martin Packman
  • Date: 2012-01-05 09:50:04 UTC
  • mfrom: (6424 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6426.
  • Revision ID: martin.packman@canonical.com-20120105095004-mia9xb7y0efmto0v
Merge bzr.dev to resolve conflicts in bzrlib.builtins

Show diffs side-by-side

added added

removed removed

Lines of Context:
467
467
        self.addCleanup(sys.path.remove, base_path)
468
468
 
469
469
        original_import = __import__
470
 
        def instrumented_import(mod, scope1, scope2, fromlist):
471
 
            self.actions.append(('import', mod, fromlist))
472
 
            return original_import(mod, scope1, scope2, fromlist)
 
470
        def instrumented_import(mod, scope1, scope2, fromlist, level):
 
471
            self.actions.append(('import', mod, fromlist, level))
 
472
            return original_import(mod, scope1, scope2, fromlist, level)
473
473
        def cleanup():
474
474
            __builtins__['__import__'] = original_import
475
475
        self.addCleanup(cleanup)
545
545
        """Test that a real import of these modules works"""
546
546
        sub_mod_path = '.'.join([self.root_name, self.sub_name,
547
547
                                  self.submoda_name])
548
 
        root = __import__(sub_mod_path, globals(), locals(), [])
 
548
        root = __import__(sub_mod_path, globals(), locals(), [], 0)
549
549
        self.assertEqual(1, root.var1)
550
550
        self.assertEqual(3, getattr(root, self.sub_name).var3)
551
551
        self.assertEqual(4, getattr(getattr(root, self.sub_name),
552
552
                                    self.submoda_name).var4)
553
553
 
554
554
        mod_path = '.'.join([self.root_name, self.mod_name])
555
 
        root = __import__(mod_path, globals(), locals(), [])
 
555
        root = __import__(mod_path, globals(), locals(), [], 0)
556
556
        self.assertEqual(2, getattr(root, self.mod_name).var2)
557
557
 
558
 
        self.assertEqual([('import', sub_mod_path, []),
559
 
                          ('import', mod_path, []),
 
558
        self.assertEqual([('import', sub_mod_path, [], 0),
 
559
                          ('import', mod_path, [], 0),
560
560
                         ], self.actions)
561
561
 
562
562
 
584
584
 
585
585
        self.assertEqual([('__getattribute__', 'var1'),
586
586
                          ('_import', 'root1'),
587
 
                          ('import', self.root_name, []),
 
587
                          ('import', self.root_name, [], 0),
588
588
                         ], self.actions)
589
589
 
590
590
    def test_import_mod(self):
609
609
 
610
610
        self.assertEqual([('__getattribute__', 'var2'),
611
611
                          ('_import', 'mod1'),
612
 
                          ('import', mod_path, []),
 
612
                          ('import', mod_path, [], 0),
613
613
                         ], self.actions)
614
614
 
615
615
    def test_import_mod_from_root(self):
633
633
 
634
634
        self.assertEqual([('__getattribute__', 'var2'),
635
635
                          ('_import', 'mod2'),
636
 
                          ('import', self.root_name, [self.mod_name]),
 
636
                          ('import', self.root_name, [self.mod_name], 0),
637
637
                         ], self.actions)
638
638
 
639
639
    def test_import_root_and_mod(self):
665
665
        mod_path = self.root_name + '.' + self.mod_name
666
666
        self.assertEqual([('__getattribute__', 'var1'),
667
667
                          ('_import', 'root3'),
668
 
                          ('import', self.root_name, []),
 
668
                          ('import', self.root_name, [], 0),
669
669
                          ('__getattribute__', 'var2'),
670
670
                          ('_import', 'mod3'),
671
 
                          ('import', mod_path, []),
 
671
                          ('import', mod_path, [], 0),
672
672
                         ], self.actions)
673
673
 
674
674
    def test_import_root_and_root_mod(self):
707
707
        mod_path = self.root_name + '.' + self.mod_name
708
708
        self.assertEqual([('__getattribute__', 'mod4'),
709
709
                          ('_import', 'root4'),
710
 
                          ('import', self.root_name, []),
 
710
                          ('import', self.root_name, [], 0),
711
711
                          ('__getattribute__', 'var2'),
712
712
                          ('_import', 'mod4'),
713
 
                          ('import', mod_path, []),
 
713
                          ('import', mod_path, [], 0),
714
714
                         ], self.actions)
715
715
 
716
716
    def test_import_root_sub_submod(self):
770
770
 
771
771
        self.assertEqual([('__getattribute__', 'mod5'),
772
772
                          ('_import', 'root5'),
773
 
                          ('import', self.root_name, []),
 
773
                          ('import', self.root_name, [], 0),
774
774
                          ('__getattribute__', 'submoda5'),
775
775
                          ('_import', 'sub5'),
776
 
                          ('import', sub_path, []),
 
776
                          ('import', sub_path, [], 0),
777
777
                          ('__getattribute__', 'var2'),
778
778
                          ('_import', 'mod5'),
779
 
                          ('import', mod_path, []),
 
779
                          ('import', mod_path, [], 0),
780
780
                          ('__getattribute__', 'var4'),
781
781
                          ('_import', 'submoda5'),
782
 
                          ('import', submoda_path, []),
 
782
                          ('import', submoda_path, [], 0),
783
783
                          ('__getattribute__', 'var5'),
784
784
                          ('_import', 'submodb5'),
785
 
                          ('import', submodb_path, []),
 
785
                          ('import', submodb_path, [], 0),
786
786
                         ], self.actions)
787
787
 
788
788
 
1077
1077
 
1078
1078
        self.assertEqual([('__getattribute__', 'var1'),
1079
1079
                          ('_import', 'root6'),
1080
 
                          ('import', self.root_name, []),
 
1080
                          ('import', self.root_name, [], 0),
1081
1081
                         ], self.actions)
1082
1082
 
1083
1083
    def test_import_deep(self):
1112
1112
 
1113
1113
        self.assertEqual([('__getattribute__', 'var4'),
1114
1114
                          ('_import', 'submoda7'),
1115
 
                          ('import', submoda_path, []),
 
1115
                          ('import', submoda_path, [], 0),
1116
1116
                         ], self.actions)
1117
1117
 
1118
1118
    def test_lazy_import(self):
1136
1136
 
1137
1137
        self.assertEqual([('__getattribute__', 'var1'),
1138
1138
                          ('_import', 'root8'),
1139
 
                          ('import', self.root_name, []),
 
1139
                          ('import', self.root_name, [], 0),
1140
1140
                         ], self.actions)
1141
1141
 
1142
1142