Rev 5574: Simplify overrideEnv, fix the related tests, make them more dev-friendly too. in file:///home/vila/src/bzr/bugs/690563-better-env-isolation/

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


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

------------------------------------------------------------
revno: 5574
revision-id: v.ladeuil+lp at free.fr-20101216101443-0em53d3ae5kmworm
parent: v.ladeuil+lp at free.fr-20101215180429-5vh8hb6cvxxq16t1
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 690563-better-env-isolation
timestamp: Thu 2010-12-16 11:14:43 +0100
message:
  Simplify overrideEnv, fix the related tests, make them more dev-friendly too.
-------------- next part --------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2010-12-15 18:04:29 +0000
+++ b/bzrlib/tests/__init__.py	2010-12-16 10:14:43 +0000
@@ -1546,12 +1546,8 @@
         :param value: The value to set the variable to. If None, the 
             variable is deleted from the environment.
         """
-        if name in self._old_env:
-            # We already protect this variable so we should not record its
-            # initial value
-            osutils.set_or_unset_env(name, value)
-        else:
-            self._old_env[name] = osutils.set_or_unset_env(name, value)
+        old_value = osutils.set_or_unset_env(name, value)
+        self.addCleanup(osutils.set_or_unset_env, name, old_value)
 
     def _cleanEnvironment(self):
         new_env = {

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2010-12-15 18:04:29 +0000
+++ b/bzrlib/tests/test_selftest.py	2010-12-16 10:14:43 +0000
@@ -3430,7 +3430,8 @@
         output = StringIO()
         result = tests.TextTestResult(output, 0, 1)
         Test('test_me').run(result)
-        self.assertTrue(result.wasStrictlySuccessful())
+        if not result.wasStrictlySuccessful():
+            self.fail(output.getvalue())
         # And we have lost all trace of the original value
         self.assertEquals(None, os.environ.get('MYVAR'))
         self.assertEquals(None, self._old_env.get('MYVAR'))
@@ -3443,14 +3444,13 @@
                 # The first call save the 42 value
                 self.overrideEnv('MYVAR', None)
                 self.assertEquals(None, os.environ.get('MYVAR'))
-                self.assertEquals('42', self._old_env.get('MYVAR'))
-                # The second one respect it
+                # Make sure we can call it twice
                 self.overrideEnv('MYVAR', None)
                 self.assertEquals(None, os.environ.get('MYVAR'))
-                self.assertEquals('42', self._old_env.get('MYVAR'))
         output = StringIO()
         result = tests.TextTestResult(output, 0, 1)
         Test('test_me').run(result)
-        self.assertTrue(result.wasStrictlySuccessful())
+        if not result.wasStrictlySuccessful():
+            self.fail(output.getvalue())
         # We get our value back
         self.assertEquals('42', os.environ.get('MYVAR'))



More information about the bazaar-commits mailing list