tests: Fix running tests on Windows and with Python 2.7

This commit is contained in:
rdb 2023-10-14 17:31:35 +02:00
parent 972c0009ac
commit b2465c3b38
3 changed files with 21 additions and 14 deletions

View File

@ -1420,6 +1420,10 @@ class Freezer:
fp = open(pathname, 'rb')
stuff = ("", "rb", _PY_COMPILED)
self.mf.load_module(mdef.moduleName, fp, pathname, stuff)
elif isinstance(mdef.text, bytes):
stuff = ("", "rb", _PY_SOURCE)
fp = io.BytesIO(mdef.text)
self.mf.load_module(mdef.moduleName, fp, pathname, stuff)
else:
stuff = ("", "rb", _PY_SOURCE)
if mdef.text:

View File

@ -2,6 +2,8 @@ from direct.dist.FreezeTool import Freezer, PandaModuleFinder
import pytest
import os
import sys
import subprocess
import platform
def test_Freezer_moduleSuffixes():
@ -16,24 +18,23 @@ def test_Freezer_getModulePath_getModuleStar(tmp_path):
# Package 1 can be imported
package1 = tmp_path / "package1"
package1.mkdir()
(package1 / "submodule1.py").write_text("")
(package1 / "__init__.py").write_text("")
(package1 / "submodule1.py").write_text(u"")
(package1 / "__init__.py").write_text(u"")
# Package 2 can not be imported
package2 = tmp_path / "package2"
package2.mkdir()
(package2 / "submodule2.py").write_text("")
(package2 / "__init__.py").write_text("raise ImportError\n")
(package2 / "submodule2.py").write_text(u"")
(package2 / "__init__.py").write_text(u"raise ImportError\n")
# Module 1 can be imported
(tmp_path / "module1.py").write_text("")
(tmp_path / "module1.py").write_text(u"")
# Module 2 can not be imported
(tmp_path / "module2.py").write_text("raise ImportError\n")
(tmp_path / "module2.py").write_text(u"raise ImportError\n")
# Module 3 has a custom __path__ and __all__
(tmp_path / "module3.py").write_text("__path__ = ['foobar']\n"
"__all__ = ['test']\n")
(tmp_path / "module3.py").write_text(u"__path__ = ['foobar']\n__all__ = ['test']\n")
backup = sys.path
try:
@ -90,7 +91,7 @@ def test_Freezer_generateRuntimeFromStub(tmp_path, use_console):
if not os.path.isfile(stub_file):
pytest.skip("Unable to find deploy-stub executable")
target = str(tmp_path / 'stubtest')
target = str(tmp_path / ('stubtest' + suffix))
freezer = Freezer()
freezer.addModule('__main__', 'main.py', text='print("Hello world")')

View File

@ -73,7 +73,7 @@ def test_load_model_okmissing(loader):
def test_loader_entry_points(tmp_path):
# A dummy loader for .fnrgl files.
(tmp_path / "fnargle.py").write_text("""
(tmp_path / "fnargle.py").write_text(u"""
from panda3d.core import ModelRoot
import sys
@ -89,18 +89,18 @@ class FnargleLoader:
return ModelRoot("fnargle")
""")
(tmp_path / "fnargle.dist-info").mkdir()
(tmp_path / "fnargle.dist-info" / "METADATA").write_text("""
(tmp_path / "fnargle.dist-info" / "METADATA").write_text(u"""
Metadata-Version: 2.0
Name: fnargle
Version: 1.0.0
""")
(tmp_path / "fnargle.dist-info" / "entry_points.txt").write_text("""
(tmp_path / "fnargle.dist-info" / "entry_points.txt").write_text(u"""
[panda3d.loaders]
fnrgl = fnargle:FnargleLoader
""")
model_path = tmp_path / "test.fnrgl"
model_path.write_text("")
model_path.write_text(u"")
if sys.version_info >= (3, 11):
import sysconfig
@ -151,7 +151,9 @@ fnrgl = fnargle:FnargleLoader
assert 'fnargle' in sys.modules
# Now try loading a fnargle file
model = loader.load_model(model_path)
model_fn = Filename(model_path)
model_fn.make_true_case()
model = loader.load_model(model_fn)
assert model is not None
assert model.name == "fnargle"