185
185
self.assertEqual(None, os.environ.get('BZR_EMAIL'))
186
186
out, err = self.run_bzr_subprocess('whoami', env_changes={
187
187
'BZR_EMAIL':'Joe Foo <joe@foo.com>'
188
}, universal_newlines=True)
189
189
self.assertEqual('', err)
190
190
self.assertEqual('Joe Foo <joe@foo.com>\n', out)
191
191
# And it should not be modified
195
195
# it is actually changing
196
196
out, err = self.run_bzr_subprocess('whoami', env_changes={
197
197
'BZR_EMAIL':'Barry <bar@foo.com>'
198
}, universal_newlines=True)
199
199
self.assertEqual('', err)
200
200
self.assertEqual('Barry <bar@foo.com>\n', out)
201
201
self.assertEqual(None, os.environ.get('BZR_EMAIL'))
209
209
os.environ['EMAIL'] = rand_email
211
211
# By default, the child will inherit the current env setting
212
out, err = self.run_bzr_subprocess('whoami')
212
out, err = self.run_bzr_subprocess('whoami', universal_newlines=True)
213
213
self.assertEqual('', err)
214
214
self.assertEqual(rand_bzr_email + '\n', out)
216
216
# Now that BZR_EMAIL is not set, it should fall back to EMAIL
217
217
out, err = self.run_bzr_subprocess('whoami',
218
env_changes={'BZR_EMAIL':None})
218
env_changes={'BZR_EMAIL':None},
219
universal_newlines=True)
219
220
self.assertEqual('', err)
220
221
self.assertEqual(rand_email + '\n', out)
222
223
# This switches back to the default email guessing logic
223
224
# Which shouldn't match either of the above addresses
224
225
out, err = self.run_bzr_subprocess('whoami',
225
env_changes={'BZR_EMAIL':None, 'EMAIL':None})
226
env_changes={'BZR_EMAIL':None, 'EMAIL':None},
227
universal_newlines=True)
227
229
self.assertEqual('', err)
228
230
self.assertNotEqual(rand_bzr_email + '\n', out)
232
234
del os.environ['BZR_EMAIL']
233
235
del os.environ['EMAIL']
237
def test_run_bzr_subprocess_env_del_missing(self):
238
"""run_bzr_subprocess won't fail if deleting a nonexistant env var"""
239
self.failIf('NON_EXISTANT_ENV_VAR' in os.environ)
240
out, err = self.run_bzr_subprocess('rocks',
241
env_changes={'NON_EXISTANT_ENV_VAR':None},
242
universal_newlines=True)
243
self.assertEqual('it sure does!\n', out)
244
self.assertEqual('', err)
235
247
class TestRunBzrError(ExternalBase):
237
249
def test_run_bzr_error(self):