3414
3414
class TestEnvironHandling(tests.TestCase):
3416
def test__captureVar_None_called_twice_leaks(self):
3417
self.failIf('MYVAR' in os.environ)
3418
self._captureVar('MYVAR', '42')
3419
# We need an embedded test to observe the bug
3420
class Test(tests.TestCase):
3422
# The first call save the 42 value
3423
self._captureVar('MYVAR', None)
3424
self.assertEquals(None, os.environ.get('MYVAR'))
3425
self.assertEquals('42', self._old_env.get('MYVAR'))
3426
# But the second one erases it !
3427
self._captureVar('MYVAR', None)
3428
self.assertEquals(None, self._old_env.get('MYVAR'))
3430
result = tests.TextTestResult(output, 0, 1)
3431
Test('test_me').run(result)
3432
if not result.wasStrictlySuccessful():
3433
self.fail(output.getvalue())
3434
# And we have lost all trace of the original value
3435
self.assertEquals(None, os.environ.get('MYVAR'))
3436
self.assertEquals(None, self._old_env.get('MYVAR'))
3438
3416
def test_overrideEnv_None_called_twice_doesnt_leak(self):
3439
3417
self.failIf('MYVAR' in os.environ)
3440
3418
self.overrideEnv('MYVAR', '42')