From: <cg...@us...> - 2009-01-25 12:20:00
|
Revision: 5976 http://jython.svn.sourceforge.net/jython/?rev=5976&view=rev Author: cgroves Date: 2009-01-25 12:19:58 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Test support classes for the last commit Added Paths: ----------- trunk/jython/tests/java/org/python/tests/mro/ trunk/jython/tests/java/org/python/tests/mro/ConfusedOnGetitemAdd.java trunk/jython/tests/java/org/python/tests/mro/ConfusedOnImport.java trunk/jython/tests/java/org/python/tests/mro/FirstAndPost.java trunk/jython/tests/java/org/python/tests/mro/FirstAndSecond.java trunk/jython/tests/java/org/python/tests/mro/FirstPredefinedGetitem.java trunk/jython/tests/java/org/python/tests/mro/GetitemAdder.java trunk/jython/tests/java/org/python/tests/mro/PostAndFirst.java trunk/jython/tests/java/org/python/tests/mro/PostdefinedGetitem.java trunk/jython/tests/java/org/python/tests/mro/SecondAndFirst.java trunk/jython/tests/java/org/python/tests/mro/SecondPredefinedGetitem.java Added: trunk/jython/tests/java/org/python/tests/mro/ConfusedOnGetitemAdd.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/ConfusedOnGetitemAdd.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/ConfusedOnGetitemAdd.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,9 @@ +package org.python.tests.mro; + +/** + * If {@link GetitemAdder#addPredefined} is called, this class is imported, then + * {@link GetitemAdder#addPostdefined} is called, the call to postdefined should raise a TypeError + * as this class produces a MRO conflict between {@link FirstPredefinedGetitem} and + * {@link PostdefinedGetitem}. + */ +public interface ConfusedOnGetitemAdd extends FirstAndPost, PostAndFirst {} Added: trunk/jython/tests/java/org/python/tests/mro/ConfusedOnImport.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/ConfusedOnImport.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/ConfusedOnImport.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,8 @@ +package org.python.tests.mro; + +/** + * {@link GetitemAdder#addPredefined} is expected to be called before this class is imported. If + * that's happened, there's a MRO conflict between {@link FirstPredefinedGetitem} and + * {@link SecondPredefinedGetitem}, so importing this should cause a TypeError. + */ +public class ConfusedOnImport implements FirstAndSecond, SecondAndFirst {} Added: trunk/jython/tests/java/org/python/tests/mro/FirstAndPost.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/FirstAndPost.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/FirstAndPost.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,3 @@ +package org.python.tests.mro; + +public interface FirstAndPost extends FirstPredefinedGetitem, PostdefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/FirstAndSecond.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/FirstAndSecond.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/FirstAndSecond.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,3 @@ +package org.python.tests.mro; + +public interface FirstAndSecond extends FirstPredefinedGetitem, SecondPredefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/FirstPredefinedGetitem.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/FirstPredefinedGetitem.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/FirstPredefinedGetitem.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,3 @@ +package org.python.tests.mro; + +public interface FirstPredefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/GetitemAdder.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/GetitemAdder.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/GetitemAdder.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,32 @@ +package org.python.tests.mro; + +import org.python.core.PyBuiltinMethod; +import org.python.core.PyBuiltinMethodNarrow; +import org.python.core.PyObject; +import org.python.core.PyType; + +public class GetitemAdder { + + public static void addPostdefined() { + PyBuiltinMethod meth = new PyBuiltinMethodNarrow("__getitem__", 1) { + + @Override + public PyObject __call__(PyObject arg) { + return arg; + } + }; + PyType.fromClass(PostdefinedGetitem.class).addMethod(meth); + } + + public static void addPredefined() { + PyBuiltinMethod meth = new PyBuiltinMethodNarrow("__getitem__", 1) { + + @Override + public PyObject __call__(PyObject arg) { + return arg; + } + }; + PyType.fromClass(FirstPredefinedGetitem.class).addMethod(meth); + PyType.fromClass(SecondPredefinedGetitem.class).addMethod(meth); + } +} \ No newline at end of file Added: trunk/jython/tests/java/org/python/tests/mro/PostAndFirst.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/PostAndFirst.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/PostAndFirst.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,3 @@ +package org.python.tests.mro; + +public interface PostAndFirst extends PostdefinedGetitem, FirstPredefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/PostdefinedGetitem.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/PostdefinedGetitem.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/PostdefinedGetitem.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,3 @@ +package org.python.tests.mro; + +public interface PostdefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/SecondAndFirst.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/SecondAndFirst.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/SecondAndFirst.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,4 @@ +package org.python.tests.mro; + + +public interface SecondAndFirst extends SecondPredefinedGetitem, FirstPredefinedGetitem {} Added: trunk/jython/tests/java/org/python/tests/mro/SecondPredefinedGetitem.java =================================================================== --- trunk/jython/tests/java/org/python/tests/mro/SecondPredefinedGetitem.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/mro/SecondPredefinedGetitem.java 2009-01-25 12:19:58 UTC (rev 5976) @@ -0,0 +1,4 @@ +package org.python.tests.mro; + + +public interface SecondPredefinedGetitem {} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |