Lib.test.test_zipimport_jy.py Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython Show documentation
Show all versions of jython Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
import unittest
import sys
import os.path
import java.lang.Package
from test import test_support
from zipimport import zipimporter
class SyspathZipimportTest(unittest.TestCase):
def setUp(self):
self.orig_path = sys.path
sys.path.insert(0, test_support.findfile("syspath_import.jar"))
# TODO confirm that package is unloaded via a phantom ref or something like that
def tearDown(self):
sys.path = self.orig_path
def test_load_class_from_syspath_zip(self):
from syspathonly import Syspath
self.assertEquals(Syspath.staticCall(), "result")
def test_package_defined(self):
from syspathonly import Syspath
package = Syspath().class.package
self.assert_(isinstance(package, java.lang.Package))
self.assertEquals(package.name, 'syspathonly')
def test_load_pkg_from_syspath(self):
import syspathpkg
self.assertEquals(syspathpkg.__name__, 'syspathpkg')
self.assert_('syspath_import.jar' in syspathpkg.__file__)
from syspathpkg import module
self.assertEquals(module.__name__, 'syspathpkg.module')
def test_zipimporter_subclass(self):
class MyJavaClass(zipimporter):
def __init__(self):
zipimporter.__init__(self, test_support.findfile('zipdir.zip'))
self.bar = "bar"
# Previously failed with AttributeError: 'MyJavaClass' object
# has no attribute 'bar'
obj = MyJavaClass()
self.assertTrue(isinstance(obj, zipimporter))
class ZipImporterDictTest(unittest.TestCase):
def test_subclass_assign_attribute(self):
class A(zipimporter): pass
path = test_support.findfile("zipdir.zip")
A(path).somevar = 1
def test_main():
test_support.run_unittest(
SyspathZipimportTest,
ZipImporterDictTest
)
if __name__ == "__main__":
test_main()