Capturing stdout from a class method

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Falcolas

    #1

    Capturing stdout from a class method

    I have a rather strange situation, and I'm not sure my brief
    experience of Python will let me handle it properly.

    The situation is this: I have a Java class "X" which I need to call in
    a Jython script. The output of "X" is sent to stdout using the java
    call System.out. I need to capture this output, and preform tests on
    it in the Jython script.

    My first pass at a design involves two jython scripts. One (we'll call
    it "Y") whose sole function is to instantiate and call "X", and die.
    The second script will call "Y" using a method which captures stdout
    to a pipe. The second script would then read the stdout from the pipe
    and act accordingly.

    Can anybody suggest a better way to handle this? The Java class, "X",
    can not be modified for this test.

  • Thomas Jollans

    #2
    Re: Capturing stdout from a class method

    Falcolas wrote:
    I have a rather strange situation, and I'm not sure my brief
    experience of Python will let me handle it properly.

    The situation is this: I have a Java class "X" which I need to call in
    a Jython script. The output of "X" is sent to stdout using the java
    call System.out. I need to capture this output, and preform tests on
    it in the Jython script.

    My first pass at a design involves two jython scripts. One (we'll call
    it "Y") whose sole function is to instantiate and call "X", and die.
    The second script will call "Y" using a method which captures stdout
    to a pipe. The second script would then read the stdout from the pipe
    and act accordingly.

    Can anybody suggest a better way to handle this? The Java class, "X",
    can not be modified for this test.
    How about subprocess.Pope n ? I'm thinking of something like this:

    import subprocess

    X_proc = subprocess.Pope n(['java', 'Xstarter'])
    for line in Xproc.stdout:
    # do funky stuff
    pass




    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.6 (GNU/Linux)
    Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

    iD8DBQFGgr8lJpi nDvQhQ0sRAjyMAJ wJyAxe8odd8z7rD St2T60G0j1ELwCe KCL6
    LstzYFWFalmBPrT KfUB6nFI=
    =/N6M
    -----END PGP SIGNATURE-----

    Comment

    Working...