From: <cg...@us...> - 2008-12-12 06:11:08
|
Revision: 5744 http://jython.svn.sourceforge.net/jython/?rev=5744&view=rev Author: cgroves Date: 2008-12-12 06:11:03 +0000 (Fri, 12 Dec 2008) Log Message: ----------- Move interface test to test_java_integration and add interface overloading test Modified Paths: -------------- trunk/jython/Lib/test/test_java_integration.py Added Paths: ----------- trunk/jython/tests/java/org/python/tests/Callbacker.java Removed Paths: ------------- trunk/jython/bugtests/classes/test082j1.java trunk/jython/bugtests/classes/test082j2.java trunk/jython/bugtests/test082.py Modified: trunk/jython/Lib/test/test_java_integration.py =================================================================== --- trunk/jython/Lib/test/test_java_integration.py 2008-12-12 05:40:12 UTC (rev 5743) +++ trunk/jython/Lib/test/test_java_integration.py 2008-12-12 06:11:03 UTC (rev 5744) @@ -387,6 +387,22 @@ self.assertEquals(s, "Foo!!!", "toString not overridden in interface") + def test_java_calling_python_interface_implementation(self): + from org.python.tests import Callbacker + called = [] + class PyCallback(Callbacker.Callback): + def call(self, extraarg=None): + called.append(extraarg) + Callbacker.callNoArg(PyCallback()) + Callbacker.callOneArg(PyCallback(), "arg") + self.assertEquals(None, called[0]) + self.assertEquals("arg", called[1]) + class PyBadCallback(Callbacker.Callback): + def call(pyself, extraarg): + self.fail("Shouldn't be callable with a no args") + self.assertRaises(TypeError, Callbacker.callNoArg, PyBadCallback()) + + class JavaStringTest(unittest.TestCase): def test_string_not_iterable(self): Deleted: trunk/jython/bugtests/classes/test082j1.java =================================================================== --- trunk/jython/bugtests/classes/test082j1.java 2008-12-12 05:40:12 UTC (rev 5743) +++ trunk/jython/bugtests/classes/test082j1.java 2008-12-12 06:11:03 UTC (rev 5744) @@ -1,6 +0,0 @@ - -public interface test082j1 { - public void doit( String dowhat ); - public void dosomethingelse( String dowhat ); -} - Deleted: trunk/jython/bugtests/classes/test082j2.java =================================================================== --- trunk/jython/bugtests/classes/test082j2.java 2008-12-12 05:40:12 UTC (rev 5743) +++ trunk/jython/bugtests/classes/test082j2.java 2008-12-12 06:11:03 UTC (rev 5744) @@ -1,7 +0,0 @@ - -public class test082j2 { - public static void doDoit( test082j1 callback ){ - callback.doit( "foo" ); - } -} - Deleted: trunk/jython/bugtests/test082.py =================================================================== --- trunk/jython/bugtests/test082.py 2008-12-12 05:40:12 UTC (rev 5743) +++ trunk/jython/bugtests/test082.py 2008-12-12 06:11:03 UTC (rev 5744) @@ -1,21 +0,0 @@ -""" -Passing an python implemented interface to a java method. -""" - -import support - -support.compileJava("classes/test082j1.java") -support.compileJava("classes/test082j2.java") - -import test082j1, test082j2 - -class pydoit( test082j1 ): - def doit( a, b): # too many arguments for interface - pass - - def dosomethingelse( a ): - pass - - -test082j2().doDoit( pydoit() ) - Added: trunk/jython/tests/java/org/python/tests/Callbacker.java =================================================================== --- trunk/jython/tests/java/org/python/tests/Callbacker.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/Callbacker.java 2008-12-12 06:11:03 UTC (rev 5744) @@ -0,0 +1,19 @@ +package org.python.tests; + +public class Callbacker { + + public interface Callback { + + public void call(); + + public void call(String oneArg); + } + + public static void callNoArg(Callback c) { + c.call(); + } + + public static void callOneArg(Callback c, String arg) { + c.call(arg); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |