summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-03-16 20:28:27 +0000
committerGerrit Code Review <review@openstack.org>2015-03-16 20:28:27 +0000
commit2fa4906cb88dda063809d557a6767ab6a3be6ba6 (patch)
tree9b1a0bf7044f6f1904f302168ccd3b6ad08dcd26
parentf86bb65545d703a969f83ace6db318b50465003b (diff)
parent99a3d1a1c5d9591eed5378cf83af78578b01b386 (diff)
downloadswift-2fa4906cb88dda063809d557a6767ab6a3be6ba6.tar.gz
Merge "Fix the prefix of messages caputured from stderr"
-rw-r--r--swift/common/utils.py12
-rw-r--r--test/unit/common/test_utils.py80
2 files changed, 49 insertions, 43 deletions
diff --git a/swift/common/utils.py b/swift/common/utils.py
index 86bb01a32..182740c30 100644
--- a/swift/common/utils.py
+++ b/swift/common/utils.py
@@ -1062,19 +1062,21 @@ class NullLogger(object):
class LoggerFileObject(object):
- def __init__(self, logger):
+ def __init__(self, logger, log_type='STDOUT'):
self.logger = logger
+ self.log_type = log_type
def write(self, value):
value = value.strip()
if value:
if 'Connection reset by peer' in value:
- self.logger.error(_('STDOUT: Connection reset by peer'))
+ self.logger.error(
+ _('%s: Connection reset by peer'), self.log_type)
else:
- self.logger.error(_('STDOUT: %s'), value)
+ self.logger.error(_('%s: %s'), self.log_type, value)
def writelines(self, values):
- self.logger.error(_('STDOUT: %s'), '#012'.join(values))
+ self.logger.error(_('%s: %s'), self.log_type, '#012'.join(values))
def close(self):
pass
@@ -1641,7 +1643,7 @@ def capture_stdio(logger, **kwargs):
if kwargs.pop('capture_stdout', True):
sys.stdout = LoggerFileObject(logger)
if kwargs.pop('capture_stderr', True):
- sys.stderr = LoggerFileObject(logger)
+ sys.stderr = LoggerFileObject(logger, 'STDERR')
def parse_options(parser=None, once=False, test_args=None):
diff --git a/test/unit/common/test_utils.py b/test/unit/common/test_utils.py
index aad08d5d3..1489501e5 100644
--- a/test/unit/common/test_utils.py
+++ b/test/unit/common/test_utils.py
@@ -1043,54 +1043,58 @@ class TestUtils(unittest.TestCase):
handler = logging.StreamHandler(sio)
logger = logging.getLogger()
logger.addHandler(handler)
- lfo = utils.LoggerFileObject(logger)
+ lfo_stdout = utils.LoggerFileObject(logger)
+ lfo_stderr = utils.LoggerFileObject(logger)
+ lfo_stderr = utils.LoggerFileObject(logger, 'STDERR')
print 'test1'
self.assertEquals(sio.getvalue(), '')
- sys.stdout = lfo
+ sys.stdout = lfo_stdout
print 'test2'
self.assertEquals(sio.getvalue(), 'STDOUT: test2\n')
- sys.stderr = lfo
+ sys.stderr = lfo_stderr
print >> sys.stderr, 'test4'
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n')
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n')
sys.stdout = orig_stdout
print 'test5'
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n')
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n')
print >> sys.stderr, 'test6'
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n'
- 'STDOUT: test6\n')
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n'
+ 'STDERR: test6\n')
sys.stderr = orig_stderr
print 'test8'
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n'
- 'STDOUT: test6\n')
- lfo.writelines(['a', 'b', 'c'])
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n'
- 'STDOUT: test6\nSTDOUT: a#012b#012c\n')
- lfo.close()
- lfo.write('d')
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n'
- 'STDOUT: test6\nSTDOUT: a#012b#012c\nSTDOUT: d\n')
- lfo.flush()
- self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDOUT: test4\n'
- 'STDOUT: test6\nSTDOUT: a#012b#012c\nSTDOUT: d\n')
- got_exc = False
- try:
- for line in lfo:
- pass
- except Exception:
- got_exc = True
- self.assert_(got_exc)
- got_exc = False
- try:
- for line in lfo.xreadlines():
- pass
- except Exception:
- got_exc = True
- self.assert_(got_exc)
- self.assertRaises(IOError, lfo.read)
- self.assertRaises(IOError, lfo.read, 1024)
- self.assertRaises(IOError, lfo.readline)
- self.assertRaises(IOError, lfo.readline, 1024)
- lfo.tell()
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n'
+ 'STDERR: test6\n')
+ lfo_stdout.writelines(['a', 'b', 'c'])
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n'
+ 'STDERR: test6\nSTDOUT: a#012b#012c\n')
+ lfo_stdout.close()
+ lfo_stderr.close()
+ lfo_stdout.write('d')
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n'
+ 'STDERR: test6\nSTDOUT: a#012b#012c\nSTDOUT: d\n')
+ lfo_stdout.flush()
+ self.assertEquals(sio.getvalue(), 'STDOUT: test2\nSTDERR: test4\n'
+ 'STDERR: test6\nSTDOUT: a#012b#012c\nSTDOUT: d\n')
+ for lfo in (lfo_stdout, lfo_stderr):
+ got_exc = False
+ try:
+ for line in lfo:
+ pass
+ except Exception:
+ got_exc = True
+ self.assert_(got_exc)
+ got_exc = False
+ try:
+ for line in lfo.xreadlines():
+ pass
+ except Exception:
+ got_exc = True
+ self.assert_(got_exc)
+ self.assertRaises(IOError, lfo.read)
+ self.assertRaises(IOError, lfo.read, 1024)
+ self.assertRaises(IOError, lfo.readline)
+ self.assertRaises(IOError, lfo.readline, 1024)
+ lfo.tell()
def test_parse_options(self):
# Get a file that is definitely on disk