def test_env_set(self): with mock.patch.dict(os.environ, {}, clear=True): ret = yield helper.call_cmd_async( # Thanks to the future import it doesn't matter if python is # python2 or python3 [ 'python', '-c', 'from __future__ import print_function; ' 'import os; ' 'print(os.environ.get("foo", "fail"), end="")' ], env={'foo': 'bar'}) self.assertEqual(ret, 'bar')
def send_mail(self, mail): cmdlist = split_commandstring(self.cmd) def cb(out): logging.info("sent mail successfully") logging.info(out) def errb(failure): termobj = failure.value errmsg = "%s failed with code %s:\n%s" % (self.cmd, termobj.exitCode, str(failure.value)) logging.error(errmsg) logging.error(failure.getTraceback()) logging.error(failure.value.stderr) raise SendingMailFailed(errmsg) d = call_cmd_async(cmdlist, stdin=mail) d.addCallback(cb) d.addErrback(errb) return d
def send_mail(self, mail): cmdlist = split_commandstring(self.cmd) def cb(out): logging.info('sent mail successfully') logging.info(out) def errb(failure): termobj = failure.value errmsg = '%s\nsendmail_cmd set to: %s' % (str(termobj), self.cmd) logging.error(errmsg) logging.error(failure.getTraceback()) logging.error(failure.value.stderr) raise SendingMailFailed(errmsg) d = call_cmd_async(cmdlist, stdin=mail) d.addCallback(cb) d.addErrback(errb) return d
def send_mail(self, mail): cmdlist = split_commandstring(self.cmd) def cb(out): logging.info('sent mail successfully') logging.info(out) def errb(failure): termobj = failure.value errmsg = '%s failed with code %s:\n%s' % \ (self.cmd, termobj.exitCode, failure.value.stderr.rstrip()) logging.error(errmsg) logging.error(failure.getTraceback()) logging.error(failure.value.stderr) raise SendingMailFailed(errmsg) d = call_cmd_async(cmdlist, stdin=mail) d.addCallback(cb) d.addErrback(errb) return d
def send_mail(self, mail): mail['Date'] = email.utils.formatdate(time.time(), True) cmdlist = split_commandstring(self.cmd) def cb(out): logging.info('sent mail successfully') logging.info(out) def errb(failure): termobj = failure.value errmsg = '%s\nsendmail_cmd set to: %s' % (str(termobj), self.cmd) logging.error(errmsg) logging.error(failure.getTraceback()) logging.error(failure.value.stderr) raise SendingMailFailed(errmsg) d = call_cmd_async(cmdlist, stdin=crypto.email_as_string(mail)) d.addCallback(cb) d.addErrback(errb) return d
def test_command_fails(self): with self.assertRaises(ProcessTerminated) as cm: yield helper.call_cmd_async(['_____better_not_exist']) self.assertEqual(cm.exception.exitCode, 1) self.assertTrue(cm.exception.stderr)
def test_env_doesnt_pollute(self): with mock.patch.dict(os.environ, {}, clear=True): yield helper.call_cmd_async(['echo', '-n', 'foo'], env={'foo': 'bar'}) self.assertEqual(os.environ, {})
def test_stdin(self): ret = yield helper.call_cmd_async(['cat', '-'], stdin='foo') self.assertEqual(ret, 'foo')
def test_no_stdin(self): ret = yield helper.call_cmd_async(['echo', '-n', 'foo']) self.assertEqual(ret, 'foo')