Example #1
0
 def test_capturing_basic_api(self, method):
     capouter = StdCaptureFD()
     old = sys.stdout, sys.stderr, sys.stdin
     try:
         capman = CaptureManager(method)
         capman.start_global_capturing()
         capman.suspend_global_capture()
         outerr = capman.read_global_capture()
         assert outerr == ("", "")
         capman.suspend_global_capture()
         outerr = capman.read_global_capture()
         assert outerr == ("", "")
         print("hello")
         capman.suspend_global_capture()
         out, err = capman.read_global_capture()
         if method == "no":
             assert old == (sys.stdout, sys.stderr, sys.stdin)
         else:
             assert not out
         capman.resume_global_capture()
         print("hello")
         capman.suspend_global_capture()
         out, err = capman.read_global_capture()
         if method != "no":
             assert out == "hello\n"
         capman.stop_global_capturing()
     finally:
         capouter.stop_capturing()
Example #2
0
 def test_init_capturing(self):
     capouter = StdCaptureFD()
     try:
         capman = CaptureManager("fd")
         capman.init_capturings()
         pytest.raises(AssertionError, "capman.init_capturings()")
         capman.reset_capturings()
     finally:
         capouter.stop_capturing()
Example #3
0
 def test_init_capturing(self):
     capouter = StdCaptureFD()
     try:
         capman = CaptureManager("fd")
         capman.start_global_capturing()
         pytest.raises(AssertionError, capman.start_global_capturing)
         capman.stop_global_capturing()
     finally:
         capouter.stop_capturing()
Example #4
0
 def test_getmethod_default_no_fd(self, testdir, monkeypatch):
     config = testdir.parseconfig(testdir.tmpdir)
     assert config.getvalue("capture") is None
     capman = CaptureManager()
     monkeypatch.delattr(os, 'dup', raising=False)
     try:
         assert capman._getmethod(config, None) == "sys"
     finally:
         monkeypatch.undo()
Example #5
0
    def test_configure_per_fspath(self, testdir, mode):
        config = testdir.parseconfig(testdir.tmpdir)
        capman = CaptureManager()
        hasfd = hasattr(os, 'dup')
        if hasfd:
            assert capman._getmethod(config, None) == "fd"
        else:
            assert capman._getmethod(config, None) == "sys"

        if not hasfd and mode == 'fd':
            return
        sub = testdir.tmpdir.mkdir("dir" + mode)
        sub.ensure("__init__.py")
        sub.join("conftest.py").write('option_capture = %r' % mode)
        assert capman._getmethod(config, sub.join("test_hello.py")) == mode
Example #6
0
 def _setinitialconftest(self, args):
     # capture output during conftest init (#issue93)
     from _pytest.capture import CaptureManager
     capman = CaptureManager()
     self.pluginmanager.register(capman, 'capturemanager')
     # will be unregistered in capture.py's unconfigure()
     capman.resumecapture(capman._getmethod_preoptionparse(args))
     try:
         try:
             self._conftest.setinitial(args)
         finally:
             out, err = capman.suspendcapture()  # logging might have got it
     except:
         sys.stdout.write(out)
         sys.stderr.write(err)
         raise
Example #7
0
 def test_juggle_capturings(self, testdir):
     capouter = py.io.StdCaptureFD()
     try:
         #config = testdir.parseconfig(testdir.tmpdir)
         capman = CaptureManager()
         try:
             capman.resumecapture("fd")
             pytest.raises(ValueError, 'capman.resumecapture("fd")')
             pytest.raises(ValueError, 'capman.resumecapture("sys")')
             os.write(1, "hello\n".encode('ascii'))
             out, err = capman.suspendcapture()
             assert out == "hello\n"
             capman.resumecapture("sys")
             os.write(1, "hello\n".encode('ascii'))
             py.builtin.print_("world", file=sys.stderr)
             out, err = capman.suspendcapture()
             assert not out
             assert err == "world\n"
         finally:
             capman.reset_capturings()
     finally:
         capouter.reset()
Example #8
0
 def test_capturing_basic_api(self, method):
     capouter = py.io.StdCaptureFD()
     old = sys.stdout, sys.stderr, sys.stdin
     try:
         capman = CaptureManager()
         # call suspend without resume or start
         outerr = capman.suspendcapture()
         outerr = capman.suspendcapture()
         assert outerr == ("", "")
         capman.resumecapture(method)
         print("hello")
         out, err = capman.suspendcapture()
         if method == "no":
             assert old == (sys.stdout, sys.stderr, sys.stdin)
         else:
             assert out == "hello\n"
         capman.resumecapture(method)
         out, err = capman.suspendcapture()
         assert not out and not err
         capman.reset_capturings()
     finally:
         capouter.reset()