コード例 #1
0
ファイル: conftest.py プロジェクト: roei3000b/devpi
 def devpi(server_dir, args):
     from devpi_server.genconfig import genconfig
     from devpi_server.importexport import import_
     from devpi_server.init import init
     from devpi_server.main import main
     from _pytest.monkeypatch import MonkeyPatch
     from _pytest.pytester import RunResult
     m = MonkeyPatch()
     m.setenv("DEVPISERVER_SERVERDIR",
              getattr(server_dir, 'strpath', server_dir))
     cap = py.io.StdCaptureFD()
     cap.startall()
     now = time.time()
     if args[0] == 'devpi-gen-config':
         m.setattr("sys.argv", [devpigenconfig])
         entry_point = genconfig
     elif args[0] == 'devpi-import':
         m.setattr("sys.argv", [devpiimport])
         entry_point = import_
     elif args[0] == 'devpi-init':
         m.setattr("sys.argv", [devpiinit])
         entry_point = init
     elif args[0] == 'devpi-server':
         m.setattr("sys.argv", [devpiserver])
         entry_point = main
     try:
         entry_point(argv=args)
     finally:
         m.undo()
         out, err = cap.reset()
         del cap
     return RunResult(0, out.split("\n"), err.split("\n"),
                      time.time() - now)
コード例 #2
0
    def _run(self, *cmdargs):
        cmdargs = [str(x) for x in cmdargs]
        p1 = self.tmpdir.join("stdout")
        p2 = self.tmpdir.join("stderr")
        print_("running", cmdargs, "curdir=", py.path.local())
        f1 = p1.open("wb")
        f2 = p2.open("wb")
        now = time.time()
        popen = Popen(cmdargs,
                      stdout=f1,
                      stderr=f2,
                      close_fds=(sys.platform != "win32"))
        ret = popen.wait()
        f1.close()
        f2.close()
        out = p1.read("rb")
        out = getdecoded(out).splitlines()
        err = p2.read("rb")
        err = getdecoded(err).splitlines()

        def dump_lines(lines, fp):
            try:
                for line in lines:
                    py.builtin.print_(line, file=fp)
            except UnicodeEncodeError:
                print("couldn't print to %s because of encoding" % (fp, ))

        dump_lines(out, sys.stdout)
        dump_lines(err, sys.stderr)
        return RunResult(ret, out, err, time.time() - now)
コード例 #3
0
def test_runresult_repr():
    from _pytest.pytester import RunResult

    assert (
        repr(
            RunResult(ret="ret", outlines=[""], errlines=["some", "errors"], duration=1)
        )
        == "<RunResult ret='ret' len(stdout.lines)=1 len(stderr.lines)=2 duration=1.00s>"
    )
コード例 #4
0
def runprocess(tmpdir, cmdargs):
    cmdargs = [str(x) for x in cmdargs]
    p1 = tmpdir.join("stdout")
    print_info("running", cmdargs, "curdir=", py.path.local())
    with codecs.open(str(p1), "w", encoding="utf8") as f1:
        now = time.time()
        popen = subprocess.Popen(
                    cmdargs, stdout=f1, stderr=subprocess.STDOUT,
                    close_fds=(sys.platform != "win32"))
        ret = popen.wait()
    with codecs.open(str(p1), "r", encoding="utf8") as f1:
        outerr = f1.read().splitlines()
    return RunResult(ret, outerr, None, time.time()-now)
コード例 #5
0
ファイル: conftest.py プロジェクト: kenatbasis/devpi
 def out_devpi_func(*args, **kwargs):
     cap = py.io.StdCaptureFD()
     cap.startall()
     now = std.time.time()
     try:
         try:
             devpi(*args, **kwargs)
         finally:
             out, err = cap.reset()
     except:
         print_(out)
         print_(err)
         raise
     print_(out)
     print_(err, file=sys.stderr)
     return RunResult(0, out.split("\n"), None, std.time.time() - now)
コード例 #6
0
ファイル: conftest.py プロジェクト: tbartlett0/devpi
 def devpi(server_dir, args):
     from devpi_server.main import main
     from _pytest.monkeypatch import MonkeyPatch
     from _pytest.pytester import RunResult
     m = MonkeyPatch()
     m.setenv("DEVPI_SERVERDIR", server_dir)
     m.setattr("sys.argv", [devpiserver])
     cap = py.io.StdCaptureFD()
     cap.startall()
     now = py.std.time.time()
     try:
         main(args)
     finally:
         m.undo()
         out, err = cap.reset()
         del cap
     return RunResult(
         0, out.split("\n"), err.split("\n"), py.std.time.time() - now)
コード例 #7
0
 def test_outcomes(self, run_result: RunResult):
     run_result.assert_outcomes(passed=1, failed=2)