From: <cg...@us...> - 2008-10-19 23:17:51
|
Revision: 5471 http://jython.svn.sourceforge.net/jython/?rev=5471&view=rev Author: cgroves Date: 2008-10-19 23:17:44 +0000 (Sun, 19 Oct 2008) Log Message: ----------- Add a couple tests for subclass constructor visibility Modified Paths: -------------- trunk/jython/Lib/test/test_java_visibility.py trunk/jython/tests/java/org/python/tests/VisibilityResults.java trunk/jython/tests/java/org/python/tests/Visible.java Modified: trunk/jython/Lib/test/test_java_visibility.py =================================================================== --- trunk/jython/Lib/test/test_java_visibility.py 2008-10-19 22:04:51 UTC (rev 5470) +++ trunk/jython/Lib/test/test_java_visibility.py 2008-10-19 23:17:44 UTC (rev 5471) @@ -8,15 +8,21 @@ self.assertEquals([], dir(Invisible)) def test_protected_from_python_subclass(self): - class SubInvisible(Invisible): - pass + class SubVisible(Visible): + def __init__(self, publicValue=None): + if publicValue is not None: + Visible.__init__(self, publicValue) + else: + Visible.__init__(self) # TODO - protectedStaticMethod, protectedStaticField, and protectedField should # be here - s = SubInvisible() + s = SubVisible() self.assertEquals(Results.PROTECTED_METHOD, s.protectedMethod(0)) + self.assertEquals(Results.OVERLOADED_PROTECTED_METHOD, s.protectedMethod('foo')) + self.assertEquals(Results.UNUSED, SubVisible(Results.UNUSED).visibleField) def test_visible(self): - self.assertEquals(4, len(dir(Visible))) + self.assertEquals(5, len(dir(Visible))) v = Visible() self.assertEquals(Results.PUBLIC_FIELD, v.visibleField) Modified: trunk/jython/tests/java/org/python/tests/VisibilityResults.java =================================================================== --- trunk/jython/tests/java/org/python/tests/VisibilityResults.java 2008-10-19 22:04:51 UTC (rev 5470) +++ trunk/jython/tests/java/org/python/tests/VisibilityResults.java 2008-10-19 23:17:44 UTC (rev 5471) @@ -1,9 +1,9 @@ package org.python.tests; -/** - * - */ public interface VisibilityResults { + // Value not used by default by any of the visible classes + public static final int UNUSED = -1; + // Returns for Invisible.java public static final int PROTECTED_STATIC_FIELD = 1; public static final int PROTECTED_FIELD = 2; @@ -15,7 +15,7 @@ public static final int OVERLOADED_PROTECTED_METHOD = 8; public static final int PACKAGE_STATIC_METHOD = 9; public static final int PACKAGE_METHOD = 10; - + // Returns for Visible.java public static final int PUBLIC_FIELD = 101; public static final int PUBLIC_STATIC_FIELD = 102; @@ -28,7 +28,7 @@ public static final int EXTRA_ARG_PUBLIC_STATIC_METHOD = 109; public static final int PUBLIC_METHOD_FIELD = 110; public static final int PUBLIC_STATIC_METHOD_FIELD = 111; - + // Returns for SubVisible.java public static final int SUBCLASS_OVERRIDE = 201; public static final int SUBCLASS_OVERLOAD = 202; Modified: trunk/jython/tests/java/org/python/tests/Visible.java =================================================================== --- trunk/jython/tests/java/org/python/tests/Visible.java 2008-10-19 22:04:51 UTC (rev 5470) +++ trunk/jython/tests/java/org/python/tests/Visible.java 2008-10-19 23:17:44 UTC (rev 5471) @@ -1,17 +1,25 @@ package org.python.tests; -/** +/** * Exposes several methods that should be visible statically and on instances in Python. */ public class Visible extends Invisible { - public int visibleField = PUBLIC_FIELD; - + public int visibleField; + public static int visibleStaticField = PUBLIC_STATIC_FIELD; public int visibleInstance = PUBLIC_METHOD_FIELD; public static int visibleStatic = PUBLIC_STATIC_METHOD_FIELD; + public Visible() { + this(PUBLIC_FIELD); + } + + public Visible(int visibileFieldValue) { + visibleField = visibileFieldValue; + } + public int visibleInstance(int input) { return PUBLIC_METHOD; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |