Hi all, hi Benjamin, hi Frank (CCed), 

i played with Jython2.5.1rc1 and both py.test and 
py.execnet more or less work :)

Here is a simple console session opening a connection from
CPython to Jython for executing code dynamically: 

    http://paste.pocoo.org/show/138497/

This means that one can interact with Java libraries and apps
**from CPython** by firing up a Jython interpreter process and 
driving it with the "zero-install" execnet approach.  The Jython
interpreter can even be on a different machine :) 

py.test also runs on top of Jython but there are some issues with 
respect to showing tracebacks, here is a session obtained from execing

  jython2.5.1rc1 py/bin/py.test test/code/test_code.py --pastebin=all

  -->  http://paste.pocoo.org/show/138496/

The py/code directory implements assert re-intepretation and
source retrieval for dynamic code compilation which is e.g.
used by py.test.raises(EXC, 'expression') in order to show 
nice tracebacks.  Currently i see three major issues: 

* jython doesn't lookup AssertionError from the builtins
  (i filed http://bugs.jython.org/issue1461)

* dynamic compilation, i.e. py.code.Code().new method:
  After adapting it to work with jython by using the
  new.code() call i noticed it doesn't preserve the 
  co_filename object as cpython and pypy do.  Maybe it's 
  anyway better to keep a WeakValueDictionary with 
  artifical-filename -> code mappings around and deprecate
  the new() method hack.

* assert re-interpretation: no clue how this could work yet.

any comments or offers for help welcome. 

best,
holger

-- 
Metaprogramming, Python, Testing: http://tetamap.wordpress.com
Python, PyPy, pytest contracting: http://merlinux.eu 
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to