~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_import_tariff.py

Merge fetch-spec-everything-not-in-other.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2010 Canonical Ltd
 
1
# Copyright (C) 2010, 2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
17
17
 
18
18
"""Tests for how many modules are loaded in executing various commands."""
19
19
 
 
20
import os
20
21
from testtools import content
21
22
 
22
23
from bzrlib.plugin import (
29
30
 
30
31
 
31
32
class TestImportTariffs(TestCaseWithTransport):
32
 
 
33
33
    """Check how many modules are loaded for some representative scenarios.
34
34
 
35
35
    See the Testing Guide in the developer documentation for more explanation.
36
36
    """
37
37
 
 
38
    def setUp(self):
 
39
        # Preserve some env vars as we want to escape the isolation for them
 
40
        self.preserved_env_vars = {}
 
41
        for name in ('BZR_HOME', 'BZR_PLUGIN_PATH', 'BZR_DISABLE_PLUGINS',
 
42
                     'BZR_PLUGINS_AT', 'HOME'):
 
43
            self.preserved_env_vars[name] = os.environ.get(name)
 
44
        super(TestImportTariffs, self).setUp()
 
45
 
38
46
    def run_command_check_imports(self, args, forbidden_imports):
39
47
        """Run bzr ARGS in a subprocess and check its imports.
40
48
 
50
58
        # more likely to always show everything.  And we use the environment
51
59
        # variable rather than 'python -v' in the hope it will work even if
52
60
        # bzr is frozen and python is not explicitly specified. -- mbp 20100208
53
 
        #
 
61
 
54
62
        # Normally we want test isolation from the real $HOME but here we
55
63
        # explicitly do want to test against things installed there, therefore
56
64
        # we pass it through.
57
 
        env_changes = dict(PYTHONVERBOSE='1')
58
 
        for name in ['BZR_HOME', 'BZR_PLUGIN_PATH',
59
 
                     'BZR_DISABLE_PLUGINS', 'BZR_PLUGINS_AT',
60
 
                     'HOME',]:
61
 
            env_changes[name] = self._old_env.get(name)
 
65
        env_changes = dict(PYTHONVERBOSE='1', **self.preserved_env_vars)
62
66
        out, err = self.run_bzr_subprocess(args,
63
67
            allow_plugins=(not are_plugins_disabled()),
64
68
            env_changes=env_changes)