~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_lazy_import.py

  • Committer: John Arbash Meinel
  • Date: 2006-09-11 19:55:18 UTC
  • mto: This revision was merged to the branch mainline in revision 2004.
  • Revision ID: john@arbash-meinel.com-20060911195518-1a2bc78a3ab51ba9
Change how parameters are passed to support 'import root1.mod1 as mod1'

Show diffs side-by-side

added added

removed removed

Lines of Context:
319
319
                         ], self.actions)
320
320
 
321
321
    def test_import_root(self):
 
322
        """Test 'import root-XXX as root1'"""
322
323
        try:
323
324
            root1
324
325
        except NameError:
329
330
 
330
331
        # This should replicate 'import root-xxyyzz as root1'
331
332
        InstrumentedImportReplacer(scope=globals(), name='root1',
332
 
                                   module_path=self.root_name,
333
 
                                   member=None,
334
 
                                   children=[])
 
333
                                   module_path=[self.root_name],
 
334
                                   member=None, children=[])
335
335
 
336
336
        self.assertEqual(InstrumentedImportReplacer,
337
337
                         object.__getattribute__(root1, '__class__'))
343
343
                          ('_import', 'root1'),
344
344
                          ('import', self.root_name, []),
345
345
                         ], self.actions)
 
346
 
 
347
    def test_import_mod(self):
 
348
        """Test 'import root-XXX.mod-XXX as mod2'"""
 
349
        try:
 
350
            mod1
 
351
        except NameError:
 
352
            # mod1 shouldn't exist yet
 
353
            pass
 
354
        else:
 
355
            self.fail('mod1 was not supposed to exist yet')
 
356
 
 
357
        mod_path = self.root_name + '.' + self.mod_name
 
358
        InstrumentedImportReplacer(scope=globals(), name='mod1',
 
359
                                   module_path=[self.root_name, self.mod_name],
 
360
                                   member=None, children=[])
 
361
 
 
362
        self.assertEqual(InstrumentedImportReplacer,
 
363
                         object.__getattribute__(mod1, '__class__'))
 
364
        self.assertEqual(2, mod1.var2)
 
365
        self.assertEqual('y', mod1.func2('y'))
 
366
 
 
367
        self.assertEqual([('__getattribute__', 'var2'),
 
368
                          '_replace',
 
369
                          ('_import', 'mod1'),
 
370
                          ('import', mod_path, []),
 
371
                         ], self.actions)
 
372
 
 
373
    def test_import_mod_from_root(self):
 
374
        """Test 'from root-XXX import mod-XXX as mod2'"""
 
375
        try:
 
376
            mod2
 
377
        except NameError:
 
378
            # mod2 shouldn't exist yet
 
379
            pass
 
380
        else:
 
381
            self.fail('mod2 was not supposed to exist yet')
 
382
 
 
383
        InstrumentedImportReplacer(scope=globals(), name='mod2',
 
384
                                   module_path=[self.root_name],
 
385
                                   member=self.mod_name, children=[])
 
386
 
 
387
        self.assertEqual(InstrumentedImportReplacer,
 
388
                         object.__getattribute__(mod2, '__class__'))
 
389
        self.assertEqual(2, mod2.var2)
 
390
        self.assertEqual('y', mod2.func2('y'))
 
391
 
 
392
        self.assertEqual([('__getattribute__', 'var2'),
 
393
                          '_replace',
 
394
                          ('_import', 'mod2'),
 
395
                          ('import', self.root_name, [self.mod_name]),
 
396
                         ], self.actions)