Rev 5582: Replace osutils.set_or_unset_env calls with self.overrideEnv. in file:///home/vila/src/bzr/bugs/690563-better-env-isolation/

Vincent Ladeuil v.ladeuil+lp at free.fr
Thu Dec 16 15:29:10 GMT 2010


At file:///home/vila/src/bzr/bugs/690563-better-env-isolation/

------------------------------------------------------------
revno: 5582
revision-id: v.ladeuil+lp at free.fr-20101216152910-5mpkn28xy3oa1cuw
parent: v.ladeuil+lp at free.fr-20101216151711-dek1mauthfujemwu
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 690563-better-env-isolation
timestamp: Thu 2010-12-16 16:29:10 +0100
message:
  Replace osutils.set_or_unset_env calls with self.overrideEnv.
-------------- next part --------------
=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- a/bzrlib/tests/blackbox/test_commit.py	2010-12-02 09:23:10 +0000
+++ b/bzrlib/tests/blackbox/test_commit.py	2010-12-16 15:29:10 +0000
@@ -719,13 +719,13 @@
             f = file('fed.bat', 'w')
             f.write('@rem dummy fed')
             f.close()
-            osutils.set_or_unset_env('BZR_EDITOR', "fed.bat")
+            self.overrideEnv('BZR_EDITOR', "fed.bat")
         else:
             f = file('fed.sh', 'wb')
             f.write('#!/bin/sh\n')
             f.close()
             os.chmod('fed.sh', 0755)
-            osutils.set_or_unset_env('BZR_EDITOR', "./fed.sh")
+            self.overrideEnv('BZR_EDITOR', "./fed.sh")
 
     def setup_commit_with_template(self):
         self.setup_editor()
@@ -756,8 +756,8 @@
         os.chdir('foo')
         open('foo.txt', 'w').write('hello')
         self.run_bzr(['add'])
-        osutils.set_or_unset_env('EMAIL', None)
-        osutils.set_or_unset_env('BZR_EMAIL', None)
+        self.overrideEnv('EMAIL', None)
+        self.overrideEnv('BZR_EMAIL', None)
         out, err = self.run_bzr(['commit', '-m', 'initial'], 3)
         self.assertContainsRe(err, 'Unable to determine your name')
 

=== modified file 'bzrlib/tests/blackbox/test_init.py'
--- a/bzrlib/tests/blackbox/test_init.py	2010-10-12 09:46:37 +0000
+++ b/bzrlib/tests/blackbox/test_init.py	2010-12-16 15:29:10 +0000
@@ -226,9 +226,9 @@
         # and uses whoami only in a lock file. Without whoami the login name
         # is used. This test is to ensure that init passes even when whoami
         # is not available.
-        osutils.set_or_unset_env('EMAIL', None)
-        osutils.set_or_unset_env('BZR_EMAIL', None)
+        self.overrideEnv('EMAIL', None)
+        self.overrideEnv('BZR_EMAIL', None)
         out, err = self.run_bzr(['init', 'foo'])
         self.assertEqual(err, '')
         self.assertTrue(os.path.exists('foo'))
-        
+

=== modified file 'bzrlib/tests/blackbox/test_shared_repository.py'
--- a/bzrlib/tests/blackbox/test_shared_repository.py	2010-05-05 14:02:53 +0000
+++ b/bzrlib/tests/blackbox/test_shared_repository.py	2010-12-16 15:29:10 +0000
@@ -155,8 +155,8 @@
         # and uses whoami only in a lock file. Without whoami the login name
         # is used. This test is to ensure that init-repo passes even when whoami
         # is not available.
-        osutils.set_or_unset_env('EMAIL', None)
-        osutils.set_or_unset_env('BZR_EMAIL', None)
+        self.overrideEnv('EMAIL', None)
+        self.overrideEnv('BZR_EMAIL', None)
         out, err = self.run_bzr(['init-repo', 'foo'])
         self.assertEqual(err, '')
         self.assertTrue(os.path.exists('foo'))

=== modified file 'bzrlib/tests/blackbox/test_whoami.py'
--- a/bzrlib/tests/blackbox/test_whoami.py	2010-12-16 13:15:42 +0000
+++ b/bzrlib/tests/blackbox/test_whoami.py	2010-12-16 15:29:10 +0000
@@ -94,8 +94,8 @@
     def test_whoami_not_set(self):
         """Ensure whoami error if username is not set.
         """
-        osutils.set_or_unset_env('EMAIL', None)
-        osutils.set_or_unset_env('BZR_EMAIL', None)
+        self.overrideEnv('EMAIL', None)
+        self.overrideEnv('BZR_EMAIL', None)
         out, err = self.run_bzr(['whoami'], 3)
         self.assertContainsRe(err, 'Unable to determine your name')
 

=== modified file 'bzrlib/tests/test_msgeditor.py'
--- a/bzrlib/tests/test_msgeditor.py	2010-12-16 13:15:42 +0000
+++ b/bzrlib/tests/test_msgeditor.py	2010-12-16 15:29:10 +0000
@@ -320,23 +320,20 @@
         self.assertFileEqual('', msgfilename)
 
     def test_unsupported_encoding_commit_message(self):
-        old_env = osutils.set_or_unset_env('LANG', 'C')
-        try:
-            # LANG env variable has no effect on Windows
-            # but some characters anyway cannot be represented
-            # in default user encoding
-            char = probe_bad_non_ascii(osutils.get_user_encoding())
-            if char is None:
-                raise TestSkipped('Cannot find suitable non-ascii character '
-                    'for user_encoding (%s)' % osutils.get_user_encoding())
-
-            self.make_fake_editor(message=char)
-
-            working_tree = self.make_uncommitted_tree()
-            self.assertRaises(errors.BadCommitMessageEncoding,
-                              msgeditor.edit_commit_message, '')
-        finally:
-            osutils.set_or_unset_env('LANG', old_env)
+        self.overrideEnv('LANG', 'C')
+        # LANG env variable has no effect on Windows
+        # but some characters anyway cannot be represented
+        # in default user encoding
+        char = probe_bad_non_ascii(osutils.get_user_encoding())
+        if char is None:
+            raise TestSkipped('Cannot find suitable non-ascii character '
+                'for user_encoding (%s)' % osutils.get_user_encoding())
+
+        self.make_fake_editor(message=char)
+
+        working_tree = self.make_uncommitted_tree()
+        self.assertRaises(errors.BadCommitMessageEncoding,
+                          msgeditor.edit_commit_message, '')
 
     def test_generate_commit_message_template_no_hooks(self):
         commit_obj = commit.Commit()

=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2010-12-16 13:15:42 +0000
+++ b/bzrlib/tests/test_osutils.py	2010-12-16 15:29:10 +0000
@@ -2070,7 +2070,7 @@
 class TestGetuserUnicode(tests.TestCase):
 
     def test_ascii_user(self):
-        osutils.set_or_unset_env('LOGNAME', 'jrandom')
+        self.overrideEnv('LOGNAME', 'jrandom')
         self.assertEqual(u'jrandom', osutils.getuser_unicode())
 
     def test_unicode_user(self):
@@ -2082,9 +2082,9 @@
                 % (osutils.get_user_encoding(),))
         uni_username = u'jrandom' + uni_val
         encoded_username = uni_username.encode(ue)
-        osutils.set_or_unset_env('LOGNAME', encoded_username)
+        self.overrideEnv('LOGNAME', encoded_username)
         self.assertEqual(uni_username, osutils.getuser_unicode())
-        osutils.set_or_unset_env('LOGNAME', u'jrandom\xb6'.encode(ue))
+        self.overrideEnv('LOGNAME', u'jrandom\xb6'.encode(ue))
         self.assertEqual(u'jrandom\xb6', osutils.getuser_unicode())
 
 class TestBackupNames(tests.TestCase):

=== modified file 'bzrlib/tests/test_osutils_encodings.py'
--- a/bzrlib/tests/test_osutils_encodings.py	2010-12-16 13:15:42 +0000
+++ b/bzrlib/tests/test_osutils_encodings.py	2010-12-16 15:29:10 +0000
@@ -171,8 +171,6 @@
     def setUp(self):
         TestCase.setUp(self)
         self.overrideAttr(locale, 'getpreferredencoding')
-        self.addCleanup(osutils.set_or_unset_env,
-                        'LANG', os.environ.get('LANG'))
         self.overrideAttr(sys, 'stderr', StringIOWrapper())
 
     def test_get_user_encoding(self):
@@ -181,7 +179,8 @@
 
         locale.getpreferredencoding = f
         fake_codec.add('user_encoding')
-        self.assertEquals('user_encoding', osutils.get_user_encoding(use_cache=False))
+        self.assertEquals('user_encoding',
+                          osutils.get_user_encoding(use_cache=False))
         self.assertEquals('', sys.stderr.getvalue())
 
     def test_user_cp0(self):

=== modified file 'bzrlib/tests/test_plugins.py'
--- a/bzrlib/tests/test_plugins.py	2010-12-16 13:15:42 +0000
+++ b/bzrlib/tests/test_plugins.py	2010-12-16 15:29:10 +0000
@@ -692,7 +692,7 @@
 
     def _set_path(self, *args):
         path = os.pathsep.join(self._list2paths(*args))
-        osutils.set_or_unset_env('BZR_PLUGIN_PATH', path)
+        self.overrideEnv('BZR_PLUGIN_PATH', path)
 
     def check_path(self, expected_dirs, setting_dirs):
         if setting_dirs:
@@ -779,7 +779,7 @@
         self.addCleanup(self._unregister_plugin, 'test_foo')
 
     def test_cannot_import(self):
-        osutils.set_or_unset_env('BZR_DISABLE_PLUGINS', 'test_foo')
+        self.overrideEnv('BZR_DISABLE_PLUGINS', 'test_foo')
         plugin.set_plugins_path(['.'])
         try:
             import bzrlib.plugins.test_foo
@@ -801,7 +801,7 @@
         self.overrideAttr(trace, 'warning', captured_warning)
         # Reset the flag that protect against double loading
         self.overrideAttr(plugin, '_loaded', False)
-        osutils.set_or_unset_env('BZR_DISABLE_PLUGINS', 'test_foo')
+        self.overrideEnv('BZR_DISABLE_PLUGINS', 'test_foo')
         plugin.load_plugins(['.'])
         self.assertPluginUnknown('test_foo')
         # Make sure we don't warn about the plugin ImportError since this has
@@ -859,7 +859,7 @@
         self.assertTestFooLoadedFrom('standard/test_foo')
 
     def test_import(self):
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
         plugin.set_plugins_path(['standard'])
         try:
             import bzrlib.plugins.test_foo
@@ -868,12 +868,12 @@
         self.assertTestFooLoadedFrom('non-standard-dir')
 
     def test_loading(self):
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
         plugin.load_plugins(['standard'])
         self.assertTestFooLoadedFrom('non-standard-dir')
 
     def test_compiled_loaded(self):
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
         plugin.load_plugins(['standard'])
         self.assertTestFooLoadedFrom('non-standard-dir')
         self.assertIsSameRealPath('non-standard-dir/__init__.py',
@@ -896,7 +896,7 @@
         self.create_plugin_package('test_bar', dir='non-standard-dir/test_bar')
         self.addCleanup(self._unregister_plugin_submodule,
                         'test_foo', 'test_bar')
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
         plugin.set_plugins_path(['standard'])
         import bzrlib.plugins.test_foo
         self.assertEqual('bzrlib.plugins.test_foo',
@@ -913,7 +913,7 @@
         self.create_plugin_package('test_bar', dir='another-dir/test_bar')
         self.addCleanup(self._unregister_plugin_submodule,
                         'test_foo', 'test_bar')
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at another-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at another-dir')
         plugin.set_plugins_path(['standard'])
         import bzrlib.plugins.test_foo
         self.assertEqual('bzrlib.plugins.test_foo',
@@ -928,7 +928,7 @@
         random = 'non-standard-dir/setup.py'
         os.rename(init, random)
         self.addCleanup(os.rename, random, init)
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo at non-standard-dir')
         plugin.load_plugins(['standard'])
         self.assertPluginUnknown('test_foo')
 
@@ -942,6 +942,6 @@
 ''' % ('test_foo', plugin_path)
         self.create_plugin('test_foo', source=source,
                            dir=plugin_dir, file_name=plugin_file_name)
-        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@%s' % plugin_path)
+        self.overrideEnv('BZR_PLUGINS_AT', 'test_foo@%s' % plugin_path)
         plugin.load_plugins(['standard'])
         self.assertTestFooLoadedFrom(plugin_path)

=== modified file 'bzrlib/tests/test_sftp_transport.py'
--- a/bzrlib/tests/test_sftp_transport.py	2010-06-23 08:17:20 +0000
+++ b/bzrlib/tests/test_sftp_transport.py	2010-12-16 15:29:10 +0000
@@ -32,7 +32,6 @@
 from bzrlib.osutils import (
     pathjoin,
     lexists,
-    set_or_unset_env,
     )
 from bzrlib.tests import (
     features,
@@ -174,27 +173,21 @@
         """Test that if no 'ssh' is available we get builtin paramiko"""
         from bzrlib.transport import ssh
         # set '.' as the only location in the path, forcing no 'ssh' to exist
-        orig_vendor = ssh._ssh_vendor_manager._cached_ssh_vendor
-        orig_path = set_or_unset_env('PATH', '.')
-        try:
-            # No vendor defined yet, query for one
-            ssh._ssh_vendor_manager.clear_cache()
-            vendor = ssh._get_ssh_vendor()
-            self.assertIsInstance(vendor, ssh.ParamikoVendor)
-        finally:
-            set_or_unset_env('PATH', orig_path)
-            ssh._ssh_vendor_manager._cached_ssh_vendor = orig_vendor
+        self.overrideAttr(ssh, '_ssh_vendor_manager')
+        self.overrideEnv('PATH' '.')
+        ssh._ssh_vendor_manager.clear_cache()
+        vendor = ssh._get_ssh_vendor()
+        self.assertIsInstance(vendor, ssh.ParamikoVendor)
 
     def test_abspath_root_sibling_server(self):
         server = stub_sftp.SFTPSiblingAbsoluteServer()
         server.start_server()
-        try:
-            transport = _mod_transport.get_transport(server.get_url())
-            self.assertFalse(transport.abspath('/').endswith('/~/'))
-            self.assertTrue(transport.abspath('/').endswith('/'))
-            del transport
-        finally:
-            server.stop_server()
+        self.addCleanup(server.stop_server)
+
+        transport = _mod_transport.get_transport(server.get_url())
+        self.assertFalse(transport.abspath('/').endswith('/~/'))
+        self.assertTrue(transport.abspath('/').endswith('/'))
+        del transport
 
 
 class SFTPBranchTest(TestCaseWithSFTPServer):



More information about the bazaar-commits mailing list