I took the latest py2js from js4py at googlecode, applied this change:
Index: unittest.sh
===================================================================
--- unittest.sh (revision 52)
+++ unittest.sh (working copy)
@@ -10,6 +10,6 @@
# setup PYTHONPATH
export PYTHONPATH=`pwd`/modules/python
-python py2js_test.py
+python2.5 py2js_test.py
cd $origd
and then run it:
$ bash unittest.sh
Generating...
...complete (0) errors.
Executing: tests/basic/break ... ok
Executing: tests/basic/trueorfalse ... ok
Executing: tests/basic/raise ... ok
Executing: tests/basic/class ... ok
Executing: tests/basic/del_attr ... ok
Executing: tests/basic/default ... ok
Executing: tests/basic/embedding ... ok
Executing: tests/basic/oo_inherit ... ok
Executing: tests/basic/nestedclass ... ok
Executing: tests/basic/vargs ... ok
Executing: tests/basic/listcomp2 ... ok
Executing: tests/basic/sumcomp ... ok
Executing: tests/basic/binaryops ... ok
Executing: tests/basic/globalvar ... ok
Executing: tests/basic/oo_static_inherit ... ok
Executing: tests/basic/vars ... ok
Executing: tests/basic/del_local ... ok
Executing: tests/basic/del_slice ... ok
Executing: tests/basic/closure ... ok
Executing: tests/basic/augassign ... ok
Executing: tests/basic/for_xrange ... ok
Executing: tests/basic/logicalops ... ok
Executing: tests/basic/fib ... ok
Executing: tests/basic/for_step ... ok
Executing: tests/basic/oo ... ok
Executing: tests/basic/del_dict ... ok
Executing: tests/basic/continue ... ok
Executing: tests/basic/for_in ... ok
Executing: tests/basic/tuple ... ok
Executing: tests/basic/del_array ... ok
Executing: tests/basic/print ... ok
Executing: tests/basic/scope ... ok
Executing: tests/basic/oo_diamond ... ok
Executing: tests/basic/kwargs ... FAIL
Executing: tests/basic/assign_slice ... ok
Executing: tests/basic/try ... ok
Executing: tests/basic/literals ... ok
Executing: tests/basic/lambda ... ok
Executing: tests/basic/dictionary ... ok
Executing: tests/basic/keys ... ok
Executing: tests/basic/docstring ... ok
Executing: tests/basic/helloworld ... ok
Executing: tests/basic/del_global ... ok
Executing: tests/basic/list ... ok
Executing: tests/basic/multiassign ... ok
Executing: tests/basic/super ... ok
Executing: tests/basic/valueerror ... ok
Executing: tests/basic/while ... ok
Executing: tests/basic/generator ... ok
Executing: tests/basic/float2int ... ok
Executing: tests/basic/pass ... ok
Executing: tests/basic/none ... ok
Executing: tests/functions/lshift ... ok
Executing: tests/functions/sort ... ok
Executing: tests/functions/divfloor ... ok
Executing: tests/functions/len ... ok
Executing: tests/functions/or ... ok
Executing: tests/functions/rshift ... ok
Executing: tests/functions/int ... ok
Executing: tests/functions/sort_cmp ... ok
Executing: tests/functions/bitxor ... ok
Executing: tests/functions/pop ... ok
Executing: tests/functions/in ... ok
Executing: tests/functions/and ... ok
Executing: tests/functions/bitor ... ok
Executing: tests/functions/bitand ... ok
Executing: tests/functions/ubitcomp ... ok
Executing: tests/functions/gtge ... ok
Executing: tests/functions/sort23 ... ok
Executing: tests/functions/uminus ... ok
Executing: tests/functions/floatdiv ... ok
Executing: tests/functions/append ... ok
Executing: tests/functions/ltle ... ok
Executing: tests/functions/aug ... ok
Executing: tests/functions/isinstance ... ok
Executing: tests/functions/uplus ... ok
Executing: tests/functions/float ... ok
Executing: tests/functions/ne ... ok
Executing: tests/functions/str ... ok
Executing: tests/strings/ulcase ... ok
Executing: tests/strings/string_format_d ... ok
Executing: tests/strings/splitlines ... ok
Executing: tests/strings/string_format_o ... ok
Executing: tests/strings/string_format_efg ... ok
Executing: tests/strings/find ... ok
Executing: tests/strings/replace ... ok
Executing: tests/strings/lstrip0 ... ok
Executing: tests/strings/rfind ... ok
Executing: tests/strings/rstrip1 ... ok
Executing: tests/strings/string_format_u ... ok
Executing: tests/strings/strip1 ... ok
Executing: tests/strings/string_format_i ... ok
Executing: tests/strings/split ... ok
Executing: tests/strings/strip ... ok
Executing: tests/strings/string_format_x ... ok
Executing: tests/strings/zipstring ... ok
Executing: tests/strings/count ... ok
Executing: tests/strings/lstrip1 ... ok
Executing: tests/strings/rstrip0 ... ok
Executing: tests/lists/sum ... ok
Executing: tests/lists/filter ... ok
Executing: tests/lists/min ... ok
Executing: tests/lists/map ... ok
Executing: tests/lists/in ... ok
Executing: tests/lists/extend ... ok
Executing: tests/lists/zip ... ok
Executing: tests/lists/reduce ... ok
Executing: tests/lists/xrange ... ok
Executing: tests/lists/max ... ok
Executing: tests/modules/import ... ok
Executing: tests/modules/import_diamond ... ok
Executing: tests/modules/import_alias ... ok
Executing: tests/modules/classname ... ok
Executing: tests/modules/import_class ... ok
Executing: tests/modules/from_import ... ok
Executing: tests/modules/import_global ... ok
Executing: tests/modules/module_name ... ok
Executing: tests/modules/rng ... ok
Executing: tests/modules/import_multi ... ok
Executing: tests/libraries/xmlwriter ... ok
======================================================================
FAIL: Executing: tests/basic/kwargs
----------------------------------------------------------------------
Traceback (most recent call last):
File "py2js_test.py", line 133, in runTest
self.assertEqual(jscontents,pycontents,"different output")
AssertionError: different output
----------------------------------------------------------------------
Ran 120 tests in 2.325s
FAILED (failures=1)
and as you can see, all tests pass just fine, except one. So I think
that the original version almost works, so it must have been caused by
your later modifications.