From: <otm...@us...> - 2006-06-15 00:18:37
|
Revision: 2821 Author: otmarhumbel Date: 2006-06-14 17:18:23 -0700 (Wed, 14 Jun 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2821&view=rev Log Message: ----------- fixed a java import bug after sys.path.append("path-to-jar-file"), reported by Vinay Saijp Modified Paths: -------------- trunk/bugtests/driver.py Added Paths: ----------- trunk/bugtests/test385.py Modified: trunk/bugtests/driver.py =================================================================== --- trunk/bugtests/driver.py 2006-06-15 00:18:14 UTC (rev 2820) +++ trunk/bugtests/driver.py 2006-06-15 00:18:23 UTC (rev 2821) @@ -50,7 +50,7 @@ print t if __name__ == '__main__': - runTests(["test%3.3d" % i for i in range(384)]) + runTests(["test%3.3d" % i for i in range(386)]) # upper bound: last test + 1 sys.exit(1) Added: trunk/bugtests/test385.py =================================================================== --- trunk/bugtests/test385.py (rev 0) +++ trunk/bugtests/test385.py 2006-06-15 00:18:23 UTC (rev 2821) @@ -0,0 +1,80 @@ +""" +Try importing from a jar after sys.path.append(jar) + +This nails down a bug reported here: + http://sourceforge.net/mailarchive/message.php?msg_id=14088259 +which only occurred on systems where java.io.File.separatorChar is not a forward slash ('/') + +since - at the moment - jython modules hide java packages with the same name from import, +use a unique java package name for the sake of this test +""" + +import support +import java +import sys +import jarray + +from java.io import File +from java.io import FileInputStream +from java.io import FileOutputStream +from java.util.jar import JarEntry +from java.util.jar import JarOutputStream + +PACKAGE = "test385javapackage" +CLAZZ = "test385j" +JARDIR = "test385jar" +JARFILE = "test385.jar" +CLAZZ_FILE = File(PACKAGE, "%s.class" % CLAZZ) # java.io.File + +def mkdir(dir): + file = File(dir) + if not file.exists(): + file.mkdir() + else: + if not file.isDirectory(): + file.mkdir() + +def mkjavaclass(): + mkdir(PACKAGE) + f = open("%s/%s.java" % (PACKAGE, CLAZZ), "w") + f.write(""" +package %s; +public class %s { +} +""" % (PACKAGE, CLAZZ)) + f.close() + support.compileJava("%s/%s.java" % (PACKAGE, CLAZZ)) + +def mkjar(): + mkdir(JARDIR) + jarFile = File(JARDIR, JARFILE) + jarOutputStream = JarOutputStream(FileOutputStream(jarFile)) + buffer = jarray.zeros(128, 'b') + inputStream = FileInputStream(CLAZZ_FILE) + jarEntryName = PACKAGE + "/" + CLAZZ_FILE.getName() + jarOutputStream.putNextEntry(JarEntry(jarEntryName)); + read = inputStream.read(buffer) + while read <> -1: + jarOutputStream.write(buffer, 0, read); + read = inputStream.read(buffer) + jarOutputStream.closeEntry(); + inputStream.close() + jarOutputStream.close() + return jarFile + + +# create a .jar file containing a .class file +mkjavaclass() +jarFile = mkjar() + +# important: delete the class file from the file system (otherwise it can be imported) +CLAZZ_FILE.delete() +if CLAZZ_FILE.exists(): + raise AssertionError, "%s is still on the file system" % CLAZZ_FILE + +# append this jar file to sys.path +sys.path.append(jarFile.getAbsolutePath()) + +# try to import the class +importStmt = "from %s import %s" % (PACKAGE, CLAZZ) +exec(importStmt) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <otm...@us...> - 2006-07-05 05:54:10
|
Revision: 2836 Author: otmarhumbel Date: 2006-07-04 22:53:59 -0700 (Tue, 04 Jul 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2836&view=rev Log Message: ----------- added a new test for standalone mode Modified Paths: -------------- trunk/bugtests/driver.py Added Paths: ----------- trunk/bugtests/test386.py Modified: trunk/bugtests/driver.py =================================================================== --- trunk/bugtests/driver.py 2006-07-05 05:44:56 UTC (rev 2835) +++ trunk/bugtests/driver.py 2006-07-05 05:53:59 UTC (rev 2836) @@ -50,7 +50,7 @@ print t if __name__ == '__main__': - runTests(["test%3.3d" % i for i in range(386)]) # upper bound: last test + 1 + runTests(["test%3.3d" % i for i in range(387)]) # upper bound: last test + 1 sys.exit(1) Added: trunk/bugtests/test386.py =================================================================== --- trunk/bugtests/test386.py (rev 0) +++ trunk/bugtests/test386.py 2006-07-05 05:53:59 UTC (rev 2836) @@ -0,0 +1,44 @@ +""" +Test the stanalone starting (java -jar jython.jar some.py) +""" + +import support +import sys +import os + +import support_config as cfg + +from java.io import File + +TESTDIR = "test386jar" +JYTHON_JAR = "jython.jar" +TEST_PY = "test386.py" + +def mkdir(dir): + if not os.path.exists(dir): + os.mkdir(dir) + +def mkPy(): + f = open("%s/%s" % (TESTDIR, TEST_PY), "w") + f.write(""" +import getopt # import a non-builtin module which is not imported by default on startup +""") + f.close() + +# create a jython standalone jar file: +# add the contents of jython.jar and /Lib files to an new jython.jar +def mkjar(): + jarFile = File(TESTDIR, JYTHON_JAR) + jarPacker = support.JarPacker(jarFile) + jarPacker.addJarFile(File(cfg.jython_home + "/%s" % JYTHON_JAR)) + jarPacker.addDirectory(File(cfg.jython_home + "/Lib")) + jarPacker.close() + return jarFile + + +mkdir(TESTDIR) +mkPy() +mkjar() +jarFileName = "%s/%s" % (TESTDIR, JYTHON_JAR) +testFileName = "%s/%s" % (TESTDIR, TEST_PY) +support.runJavaJar(jarFileName, testFileName) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cg...@us...> - 2006-07-28 00:04:37
|
Revision: 2860 Author: cgroves Date: 2006-07-25 19:43:32 -0700 (Tue, 25 Jul 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2860&view=rev Log Message: ----------- tests that import misses of sibling modules are cached in sys.modules as None Added Paths: ----------- trunk/bugtests/test387.py trunk/bugtests/test387p/ trunk/bugtests/test387p/__init__.py trunk/bugtests/test387p/test387m.py Added: trunk/bugtests/test387.py =================================================================== --- trunk/bugtests/test387.py (rev 0) +++ trunk/bugtests/test387.py 2006-07-26 02:43:32 UTC (rev 2860) @@ -0,0 +1,10 @@ +import support + +import test387p.test387m + +import sys + +if not 'test387p.difflib' in sys.modules: + raise support.TestError, 'Cached module for sibling module import miss should exist in sys.modules' +if not sys.modules['test387p.difflib'] is None: + raise support.TestError, 'Cached module for sibling module import miss should be None in sys.modules' Added: trunk/bugtests/test387p/__init__.py =================================================================== Added: trunk/bugtests/test387p/test387m.py =================================================================== --- trunk/bugtests/test387p/test387m.py (rev 0) +++ trunk/bugtests/test387p/test387m.py 2006-07-26 02:43:32 UTC (rev 2860) @@ -0,0 +1 @@ +import difflib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cg...@us...> - 2006-07-29 07:00:17
|
Revision: 2866 Author: cgroves Date: 2006-07-28 23:59:20 -0700 (Fri, 28 Jul 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2866&view=rev Log Message: ----------- tests that python modules are imported before directories of the same name on the java classpath Added Paths: ----------- trunk/bugtests/test388.py trunk/bugtests/test388m/ trunk/bugtests/test388m.py Added: trunk/bugtests/test388.py =================================================================== --- trunk/bugtests/test388.py (rev 0) +++ trunk/bugtests/test388.py 2006-07-29 06:59:20 UTC (rev 2866) @@ -0,0 +1,14 @@ +''' +This checks that Python imports precedes the loading of Java directories from the +classpath. + +Reported in bug 1421812. +''' +import support + +import test388m + +if not hasattr(test388m, 'x'): + raise support.TestError, 'Python modules should be imported before directories for Java' + + Added: trunk/bugtests/test388m.py =================================================================== --- trunk/bugtests/test388m.py (rev 0) +++ trunk/bugtests/test388m.py 2006-07-29 06:59:20 UTC (rev 2866) @@ -0,0 +1 @@ +x = 7 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cg...@us...> - 2006-08-12 19:24:39
|
Revision: 2887 Author: cgroves Date: 2006-08-12 12:24:36 -0700 (Sat, 12 Aug 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2887&view=rev Log Message: ----------- reenabled now that bug #480017 is fixed Modified Paths: -------------- trunk/bugtests/test338.py trunk/bugtests/test338j.java Modified: trunk/bugtests/test338.py =================================================================== --- trunk/bugtests/test338.py 2006-08-12 19:22:13 UTC (rev 2886) +++ trunk/bugtests/test338.py 2006-08-12 19:24:36 UTC (rev 2887) @@ -1,5 +1,7 @@ """ [ #480017 ] Proxy supers are loaded from syspath +Running test338j will throw a ClassCastException if a proxy's superclass is loaded +by the syspath classloader. """ import support @@ -8,6 +10,5 @@ support.compileJava("test338j1.java", classpath=".") support.compileJava("test338j.java", classpath=".") -#support.runJava("test338j", classpath=".") -raise support.TestWarning("Should (maybe) not fail.") +support.runJava("test338j", classpath=".") Modified: trunk/bugtests/test338j.java =================================================================== --- trunk/bugtests/test338j.java 2006-08-12 19:22:13 UTC (rev 2886) +++ trunk/bugtests/test338j.java 2006-08-12 19:24:36 UTC (rev 2887) @@ -11,11 +11,8 @@ public void run() { String brob = "test338m"; - PythonInterpreter interp = new PythonInterpreter(); - //Py.getSystemState().setClassLoader(this.getClass().getClassLoader()); interp.set("test338j1", test338j1.class); - //interp.exec("mod = __import__('" + brob + "')"); interp.execfile(brob + ".py"); interp.exec("cl = " + brob + "()"); Object newobj = interp.get("cl", Object.class); @@ -23,7 +20,6 @@ //System.out.println(newobj.getClass().getSuperclass().hashCode() + " " + test338j1.class.hashCode()); //System.out.println(newobj.getClass().getSuperclass().getClassLoader()); test338j1 boobj = (test338j1) newobj; - //System.out.println(boobj.getDescription()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cg...@us...> - 2006-08-18 02:36:37
|
Revision: 2894 Author: cgroves Date: 2006-08-17 19:36:33 -0700 (Thu, 17 Aug 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2894&view=rev Log Message: ----------- enable 232 and remove 279 since it was testing the same thing Modified Paths: -------------- trunk/bugtests/test232.py Removed Paths: ------------- trunk/bugtests/test279.py trunk/bugtests/test279p/ Modified: trunk/bugtests/test232.py =================================================================== --- trunk/bugtests/test232.py 2006-08-15 04:22:36 UTC (rev 2893) +++ trunk/bugtests/test232.py 2006-08-18 02:36:33 UTC (rev 2894) @@ -1,19 +1,15 @@ """ - +Bug #222847 - Can't access public member of package private base class """ import support support.compileJava("classes/test232p/Foo.java") -import java - from test232p import Foo try: - f = Foo() - f.hi() -except java.lang.IllegalAccessException: - pass -else: - raise support.TestError("expected an access exception") + Foo().hi() +except IllegalAccessException: + raise support.TestError('Should be able to call public method on package protected superclass') + Deleted: trunk/bugtests/test279.py =================================================================== --- trunk/bugtests/test279.py 2006-08-15 04:22:36 UTC (rev 2893) +++ trunk/bugtests/test279.py 2006-08-18 02:36:33 UTC (rev 2894) @@ -1,15 +0,0 @@ -""" -Test access to public methods in a package private superclass. -""" - -import java, support - -support.compileJava("test279p/Foo.java") - -from test279p import Foo -f = Foo() -try: - f.hi() -except java.lang.IllegalAccessException: - raise support.TestError, "This should work. It works in pure java" - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <otm...@us...> - 2006-08-22 22:39:57
|
Revision: 2903 Author: otmarhumbel Date: 2006-08-22 15:39:46 -0700 (Tue, 22 Aug 2006) ViewCVS: http://svn.sourceforge.net/jython/?rev=2903&view=rev Log Message: ----------- added tests for java imports in standalone mode Modified Paths: -------------- trunk/bugtests/test386.py Added Paths: ----------- trunk/bugtests/test386jar/ trunk/bugtests/test386jar/test386called.py Modified: trunk/bugtests/test386.py =================================================================== --- trunk/bugtests/test386.py 2006-08-22 22:08:21 UTC (rev 2902) +++ trunk/bugtests/test386.py 2006-08-22 22:39:46 UTC (rev 2903) @@ -1,5 +1,5 @@ """ -Test the stanalone starting (java -jar jython.jar some.py) +Test the standalone starting (java -jar jython.jar some.py) """ import support @@ -12,33 +12,26 @@ TESTDIR = "test386jar" JYTHON_JAR = "jython.jar" -TEST_PY = "test386.py" +TEST_PY_NAME = TESTDIR +"/test386called.py" -def mkdir(dir): - if not os.path.exists(dir): - os.mkdir(dir) - -def mkPy(): - f = open("%s/%s" % (TESTDIR, TEST_PY), "w") - f.write(""" -import getopt # import a non-builtin module which is not imported by default on startup -""") - f.close() +def checkTestDir(): + if not os.path.exists(TESTDIR): + raise AssertionError, TESTDIR + " does not exist" + if not os.path.exists(TEST_PY_NAME): + raise AssertionError, TEST_PY_NAME + " does not exist" # create a jython standalone jar file: # add the contents of jython.jar and /Lib files to an new jython.jar def mkjar(): - jarFile = File(TESTDIR, JYTHON_JAR) - jarPacker = support.JarPacker(jarFile) - jarPacker.addJarFile(File(cfg.jython_home + "/%s" % JYTHON_JAR)) - jarPacker.addDirectory(File(cfg.jython_home + "/Lib")) - jarPacker.close() - return jarFile + jarFile = File(TESTDIR, JYTHON_JAR) + jarPacker = support.JarPacker(jarFile) + jarPacker.addJarFile(File(cfg.jython_home + "/%s" % JYTHON_JAR)) + jarPacker.addDirectory(File(cfg.jython_home + "/Lib")) + jarPacker.close() + return jarFile -mkdir(TESTDIR) -mkPy() +checkTestDir() mkjar() jarFileName = "%s/%s" % (TESTDIR, JYTHON_JAR) -testFileName = "%s/%s" % (TESTDIR, TEST_PY) -support.runJavaJar(jarFileName, testFileName) \ No newline at end of file +support.runJavaJar(jarFileName, TEST_PY_NAME) \ No newline at end of file Added: trunk/bugtests/test386jar/test386called.py =================================================================== --- trunk/bugtests/test386jar/test386called.py (rev 0) +++ trunk/bugtests/test386jar/test386called.py 2006-08-22 22:39:46 UTC (rev 2903) @@ -0,0 +1,40 @@ +# make sure we are in 'standalone' mode, without package scan +import sys +skipName = "python.cachedir.skip" +if not sys.registry.containsKey(skipName): + raise AssertionError, skipName + " is missing" +if not "true" == sys.registry.getProperty(skipName): + raise AssertionError, skipName + " is not true" + +# import a non-builtin module which is not imported by default on startup +# this verifies that /Lib .py files can be imported +# this fixes bug [ 1194650 ] +import getopt + +# an early java import +from java import util +util # used give a NameError + +# import java specific py modules +import os +import javaos + +# now do some java imports which previously failed without a package scan +# this (most of the time) solves the famous 'no module named java' problem +import java +import java.lang +from java import util +from java.math import BigDecimal +from java.math import BigDecimal, BigInteger +from java.lang.reflect import Method +# verify the self healing +try: + # assume package javax.imageio.event was never touched before + import javax.imageio.event + raise AssertionError, "ImportError expected when executing 'import javax.imageio.event'" +except ImportError: + pass +from javax.imageio.event import IIOReadProgressListener +# importing this twice was a problem +from org.python.core import PySystemState +from org.python.core import PySystemState \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cg...@us...> - 2006-09-07 03:45:51
|
Revision: 2929 http://svn.sourceforge.net/jython/?rev=2929&view=rev Author: cgroves Date: 2006-09-06 20:45:44 -0700 (Wed, 06 Sep 2006) Log Message: ----------- updated for full path in __file__ Modified Paths: -------------- trunk/bugtests/test307.py trunk/bugtests/test308.py trunk/bugtests/test323.py Added Paths: ----------- trunk/bugtests/test307foobar.template trunk/bugtests/test307m.template trunk/bugtests/test307p.template Modified: trunk/bugtests/test307.py =================================================================== --- trunk/bugtests/test307.py 2006-09-07 03:44:07 UTC (rev 2928) +++ trunk/bugtests/test307.py 2006-09-07 03:45:44 UTC (rev 2929) @@ -4,58 +4,23 @@ import support import zipfile, time +from java.io import File -def addZipEntry(zip, name, data): +def addZipEntry(zip, name, templateName): + template = open('test307%s.template' % templateName) entry = zipfile.ZipInfo() entry.filename = name entry.date_time = time.gmtime(time.time()) - zip.writestr(entry, data) + zip.writestr(entry, template.read()) + template.close() - zip = zipfile.ZipFile("test307.zip", "w") -addZipEntry(zip, "test307m.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test307m") -compare("__file__", __file__, "test307m.py") -""") +addZipEntry(zip, 'test307m.py', 'm') +addZipEntry(zip, 'test307p/__init__.py', 'p') +addZipEntry(zip, "foo/bar/foobar.py", "foobar") -addZipEntry(zip, "mod.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "mod") -compare("__file__", __file__, "mod.py") -""") - -addZipEntry(zip, "test307p/__init__.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test307p") -compare("__file__", __file__, "test307p/__init__.py") -compare("__path__", __path__, ["test307.zip/test307p"]) -import mod -import submod -__path__.append("test307.zip/foo/bar") -import foobar -""") - -addZipEntry(zip, "test307p/submod.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test307p.submod") -compare("__file__", __file__, "test307p/submod.py") -#print "__path__", repr(__path__) -""") - -addZipEntry(zip, "foo/bar/foobar.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test307p.foobar") -compare("__file__", __file__, "foo/bar/foobar.py") -""") - zip.close() import sys @@ -63,11 +28,8 @@ import test307m assert test307m.__name__ == "test307m" -assert test307m.__file__ == "test307m.py" - +assert "test307.zip" in test307m.__file__ import test307p -assert test307p.__name__ == "test307p" -assert test307p.__file__ == "test307p/__init__.py" sys.path.pop() del test307p, test307m Added: trunk/bugtests/test307foobar.template =================================================================== --- trunk/bugtests/test307foobar.template (rev 0) +++ trunk/bugtests/test307foobar.template 2006-09-07 03:45:44 UTC (rev 2929) @@ -0,0 +1 @@ +assert __name__ == 'test307p.foobar', "__name__ should've been test307p.foobar but was %s" % __name__ Added: trunk/bugtests/test307m.template =================================================================== --- trunk/bugtests/test307m.template (rev 0) +++ trunk/bugtests/test307m.template 2006-09-07 03:45:44 UTC (rev 2929) @@ -0,0 +1,4 @@ +assert __name__ == 'test307m', " __name__ should've been test307m but was %s" % __name__ +from java.io import File +expected = "test307.zip%stest307m.py" % File.separator +assert expected in __file__, "%s should've been in __file__ but was %s" % (expected, __file__) Added: trunk/bugtests/test307p.template =================================================================== --- trunk/bugtests/test307p.template (rev 0) +++ trunk/bugtests/test307p.template 2006-09-07 03:45:44 UTC (rev 2929) @@ -0,0 +1,7 @@ +assert __name__ == 'test307p', " __name__ should've been test307p but was %s" % __name__ + +#compare("__file__", __file__, "test307p/__init__.py") +#compare("__path__", __path__, ["test307.zip/test307p"]) +#import test307m +__path__.append("test307.zip/foo/bar") +import foobar Modified: trunk/bugtests/test308.py =================================================================== --- trunk/bugtests/test308.py 2006-09-07 03:44:07 UTC (rev 2928) +++ trunk/bugtests/test308.py 2006-09-07 03:45:44 UTC (rev 2929) @@ -17,10 +17,6 @@ zip = zipfile.ZipFile("test308.zip", "w", zipfile.ZIP_DEFLATED) addZipEntry(zip, "test308m.py", """ -def compare(str, v1, v2): - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test308m") -compare("__file__", __file__, "test308m.py") import test308j assert test308j().foo() == "bar" """) @@ -34,13 +30,3 @@ import test308m -sys.path.pop() -del test308m -del sys.modules['test308m'], sys.modules['test308j'] - -import java -java.lang.System.gc() -time.sleep(4) - -#raise support.TestWarning('A test of TestWarning. It is not an error') - Modified: trunk/bugtests/test323.py =================================================================== --- trunk/bugtests/test323.py 2006-09-07 03:44:07 UTC (rev 2928) +++ trunk/bugtests/test323.py 2006-09-07 03:45:44 UTC (rev 2929) @@ -1,12 +1,10 @@ """ -Test import of java class from sys.path zipfile. +Tests using a path inside a zip file for zip imports """ import support import zipfile, time -#support.compileJava("test323d/test323j.java") - def addZipEntry(zip, name, data): entry = zipfile.ZipInfo() entry.filename = name @@ -17,29 +15,15 @@ zip = zipfile.ZipFile("test323.zip", "w", zipfile.ZIP_DEFLATED) addZipEntry(zip, "Lib/test323m.py", """ -def compare(str, v1, v2): - #print str, v1, v2 - assert v1 == v2, "%s '%s' '%s'" % (str, v1, v2) -compare("__name__", __name__, "test323m") -compare("__file__", __file__, "Lib/test323m.py") +assert __name__ == 'test323m', " __name__ should've been test323m but was %s" % __name__ +from java.io import File +expected = "test323.zip%sLib/test323m.py" % (File.separator) +assert expected in __file__, "%s should've been in __file__ but was %s" % (expected, __file__) """) -#zip.write("test323d/test323j.class", "test323j.class") - zip.close() import sys sys.path.append("test323.zip/Lib") import test323m - -sys.path.pop() -del test323m -del sys.modules['test323m'] - -import java -java.lang.System.gc() -time.sleep(4) - -#raise support.TestWarning('A test of TestWarning. It is not an error') - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <otm...@us...> - 2006-11-20 15:59:53
|
Revision: 2978 http://svn.sourceforge.net/jython/?rev=2978&view=rev Author: otmarhumbel Date: 2006-11-20 07:59:46 -0800 (Mon, 20 Nov 2006) Log Message: ----------- added a test exposing a site import error when a standalone jython.jar is referred in a MANIFEST.MF of another .jar Added Paths: ----------- trunk/bugtests/test394.py trunk/bugtests/test394jar/MANIFEST.MF trunk/bugtests/test394jar/Runner.java trunk/bugtests/test394jar/test394called.py Added: trunk/bugtests/test394.py =================================================================== --- trunk/bugtests/test394.py (rev 0) +++ trunk/bugtests/test394.py 2006-11-20 15:59:46 UTC (rev 2978) @@ -0,0 +1,78 @@ +""" +Test standalone starting, +where the manifest of a .jar refers to jython.jar + + +This used to give an error importing site, as follows: + +error importing site +Traceback (innermost last): + File "C:\workspace\jython\bugtests\test394jar\jython.jar\Lib/site.py", line 210, in ? +TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' +Traceback (innermost last): + File "C:/workspace/jython/bugtests/test394.py", line 71, in ? + File "C:\workspace\jython\bugtests\support.py", line 100, in runJavaJar + File "C:\workspace\jython\bugtests\support.py", line 65, in execCmd +TestError: cmd /C "C:/Programme/Java/jdk1.5.0_09/bin/java.exe -jar test394jar/run.jar " failed with -1 + +""" + +import support +import sys +import os + +import support_config as cfg + +from java.io import File + +TESTDIR = "test394jar" +JYTHON_JAR = "jython.jar" +RUN_JAR = "run.jar" +TEST_PY_NAME = TESTDIR +"/test394called.py" +CLAZZ = "Runner" +MANIFEST = "MANIFEST.MF" + +def checkTestDir(): + if not os.path.exists(TESTDIR): + raise AssertionError, TESTDIR + " does not exist" + if not os.path.exists(TEST_PY_NAME): + raise AssertionError, TEST_PY_NAME + " does not exist" + javaFileName = TESTDIR + "/" + CLAZZ + ".java" + if not os.path.exists(javaFileName): + raise AssertionError, javaFileName + " does not exist" + manifestFileName = TESTDIR + "/" + MANIFEST + if not os.path.exists(manifestFileName): + raise AssertionError, manifestFileName + " does not exist" + + +# create a jython standalone jar file: +# add the contents of jython.jar and /Lib files to an new jython.jar +def mkJythonJar(): + jarFile = File(TESTDIR, JYTHON_JAR) + jarPacker = support.JarPacker(jarFile) + jarPacker.addJarFile(File(cfg.jython_home + "/%s" % JYTHON_JAR)) + jarPacker.addDirectory(File(cfg.jython_home + "/Lib")) + jarPacker.close() + return jarFile + +# make a java class calling jython main +def mkJavaClass(): + support.compileJava("%s/%s.java" % (TESTDIR, CLAZZ)) + +# create a runnable jar file with a manifest referring to jython.jar +def mkRunJar(): + jarFile = File(TESTDIR, RUN_JAR) + manifestFile = File(TESTDIR, MANIFEST) + jarPacker = support.JarPacker(jarFile) + jarPacker.addManifestFile(manifestFile) + jarPacker.addFile(File(TESTDIR, CLAZZ+".class"), TESTDIR) + jarPacker.close() + + + +checkTestDir() +mkJythonJar() +mkJavaClass() +mkRunJar() +jarFileName = "%s/%s" % (TESTDIR, RUN_JAR) +support.runJavaJar(jarFileName) \ No newline at end of file Added: trunk/bugtests/test394jar/MANIFEST.MF =================================================================== --- trunk/bugtests/test394jar/MANIFEST.MF (rev 0) +++ trunk/bugtests/test394jar/MANIFEST.MF 2006-11-20 15:59:46 UTC (rev 2978) @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Class-Path: . jython.jar +Main-Class: test394jar.Runner + Added: trunk/bugtests/test394jar/Runner.java =================================================================== --- trunk/bugtests/test394jar/Runner.java (rev 0) +++ trunk/bugtests/test394jar/Runner.java 2006-11-20 15:59:46 UTC (rev 2978) @@ -0,0 +1,11 @@ +package test394jar; + +import org.python.util.jython; + +public class Runner { + + public static void main(String args[]) { + jython.main(new String[] { "test394jar/test394called.py" }); + } + +} Added: trunk/bugtests/test394jar/test394called.py =================================================================== --- trunk/bugtests/test394jar/test394called.py (rev 0) +++ trunk/bugtests/test394jar/test394called.py 2006-11-20 15:59:46 UTC (rev 2978) @@ -0,0 +1 @@ +a = 1 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |