| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from panda3d.core import VirtualFileSystem, VirtualFileMountRamdisk, Filename
- import sys
- def test_VFSImporter():
- from direct.showbase import VFSImporter
- VFSImporter.register()
- vfs = VirtualFileSystem.get_global_ptr()
- mount = VirtualFileMountRamdisk()
- success = vfs.mount(mount, "/ram", 0)
- assert success
- try:
- sys.path.insert(0, "/ram")
- vfs.write_file("/ram/testmod.py", b"var = 1\n", False)
- vfs.make_directory("/ram/testpkg")
- vfs.write_file("/ram/testpkg/__init__.py", b"var = 2\n", False)
- vfs.write_file("/ram/testpkg/test.py", b"var = 3\n", False)
- vfs.make_directory("/ram/testnspkg")
- vfs.write_file("/ram/testnspkg/test.py", b"var = 4\n", False)
- import testmod
- assert testmod.var == 1
- assert testmod.__spec__.name == 'testmod'
- filename = Filename('/ram/testmod.py').to_os_specific()
- assert testmod.__spec__.origin == filename
- assert testmod.__file__ == filename
- import testpkg
- assert testpkg.var == 2
- assert testpkg.__package__ == 'testpkg'
- assert testpkg.__path__ == [Filename('/ram/testpkg').to_os_specific()]
- assert testpkg.__spec__.name == 'testpkg'
- filename = Filename('/ram/testpkg/__init__.py').to_os_specific()
- assert testpkg.__spec__.origin == filename
- assert testpkg.__file__ == filename
- from testpkg import test
- assert test.var == 3
- assert test.__spec__.name == 'testpkg.test'
- filename = Filename('/ram/testpkg/test.py').to_os_specific()
- assert test.__spec__.origin == filename
- assert test.__file__ == filename
- from testnspkg import test
- assert test.var == 4
- assert test.__spec__.name == 'testnspkg.test'
- filename = Filename('/ram/testnspkg/test.py').to_os_specific()
- assert test.__spec__.origin == filename
- assert test.__file__ == filename
- finally:
- vfs.unmount(mount)
- try:
- del sys.path[sys.path.index("/ram")]
- except ValueError:
- pass
|