~swift/swift/omega-1.3.0-4

« back to all changes in this revision

Viewing changes to test/unit/common/test_utils.py

  • Committer: OpenStack Hudson
  • Date: 2011-03-30 20:51:15 UTC
  • mfrom: (36.1.223 swift)
  • Revision ID: hudson@openstack.org-20110330205115-0rxid65lhypi3lem
* Non-maintainer upload.
* Merged from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
from shutil import rmtree
30
30
from StringIO import StringIO
31
31
from functools import partial
32
 
from tempfile import NamedTemporaryFile
 
32
from tempfile import TemporaryFile, NamedTemporaryFile
33
33
 
34
34
from eventlet import sleep
35
35
 
77
77
 
78
78
class MockSys():
79
79
 
80
 
    __stderr__ = sys.__stderr__
 
80
    def __init__(self):
 
81
        self.stdin = TemporaryFile('w')
 
82
        self.stdout = TemporaryFile('r')
 
83
        self.stderr = TemporaryFile('r')
 
84
        self.__stderr__ = self.stderr
 
85
        self.stdio_fds = [self.stdin.fileno(), self.stdout.fileno(),
 
86
                          self.stderr.fileno()]
81
87
 
82
88
 
83
89
def reset_loggers():
541
547
            # basic test
542
548
            utils.capture_stdio(logger)
543
549
            self.assert_(utils.sys.excepthook is not None)
544
 
            self.assertEquals(utils.os.closed_fds, [0, 1, 2])
545
 
            self.assert_(utils.sys.stdout is not None)
546
 
            self.assert_(utils.sys.stderr is not None)
 
550
            self.assertEquals(utils.os.closed_fds, utils.sys.stdio_fds)
 
551
            self.assert_(isinstance(utils.sys.stdout, utils.LoggerFileObject))
 
552
            self.assert_(isinstance(utils.sys.stderr, utils.LoggerFileObject))
547
553
 
548
554
            # reset; test same args, but exc when trying to close stdio
549
555
            utils.os = MockOs(raise_funcs=('dup2',))
553
559
            utils.capture_stdio(logger)
554
560
            self.assert_(utils.sys.excepthook is not None)
555
561
            self.assertEquals(utils.os.closed_fds, [])
556
 
            self.assert_(utils.sys.stdout is not None)
557
 
            self.assert_(utils.sys.stderr is not None)
 
562
            self.assert_(isinstance(utils.sys.stdout, utils.LoggerFileObject))
 
563
            self.assert_(isinstance(utils.sys.stderr, utils.LoggerFileObject))
558
564
 
559
565
            # reset; test some other args
 
566
            utils.os = MockOs()
 
567
            utils.sys = MockSys()
560
568
            logger = utils.get_logger(None, log_to_console=True)
561
 
            utils.os = MockOs()
562
 
            utils.sys = MockSys()
563
569
 
564
570
            # test console log
565
571
            utils.capture_stdio(logger, capture_stdout=False,
566
572
                                capture_stderr=False)
567
573
            self.assert_(utils.sys.excepthook is not None)
568
574
            # when logging to console, stderr remains open
569
 
            self.assertEquals(utils.os.closed_fds, [0, 1])
 
575
            self.assertEquals(utils.os.closed_fds, utils.sys.stdio_fds[:2])
570
576
            reset_loggers()
571
577
 
572
578
            # stdio not captured
573
 
            self.assertFalse(hasattr(utils.sys, 'stdout'))
574
 
            self.assertFalse(hasattr(utils.sys, 'stderr'))
 
579
            self.assertFalse(isinstance(utils.sys.stdout,
 
580
                                        utils.LoggerFileObject))
 
581
            self.assertFalse(isinstance(utils.sys.stderr,
 
582
                                        utils.LoggerFileObject))
575
583
            reset_loggers()
576
584
        finally:
577
585
            utils.sys = _orig_sys