|
@@ -1,4 +1,6 @@
|
|
|
from direct.dist.FreezeTool import Freezer, PandaModuleFinder
|
|
from direct.dist.FreezeTool import Freezer, PandaModuleFinder
|
|
|
|
|
+import pytest
|
|
|
|
|
+import os
|
|
|
import sys
|
|
import sys
|
|
|
|
|
|
|
|
|
|
|
|
@@ -62,3 +64,35 @@ def test_Freezer_getModulePath_getModuleStar(tmp_path):
|
|
|
assert freezer.getModuleStar("module3") == ['test']
|
|
assert freezer.getModuleStar("module3") == ['test']
|
|
|
finally:
|
|
finally:
|
|
|
sys.path = backup
|
|
sys.path = backup
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
[email protected]("use_console", (False, True))
|
|
|
|
|
+def test_Freezer_generateRuntimeFromStub(tmp_path, use_console):
|
|
|
|
|
+ try:
|
|
|
|
|
+ # If installed as a wheel
|
|
|
|
|
+ import panda3d_tools
|
|
|
|
|
+ bin_dir = os.path.dirname(panda3d_tools.__file__)
|
|
|
|
|
+ except:
|
|
|
|
|
+ import panda3d
|
|
|
|
|
+ bin_dir = os.path.join(os.path.dirname(os.path.dirname(panda3d.__file__)), 'bin')
|
|
|
|
|
+
|
|
|
|
|
+ if sys.platform == 'win32':
|
|
|
|
|
+ suffix = '.exe'
|
|
|
|
|
+ else:
|
|
|
|
|
+ suffix = ''
|
|
|
|
|
+
|
|
|
|
|
+ if not use_console:
|
|
|
|
|
+ stub_file = os.path.join(bin_dir, 'deploy-stubw' + suffix)
|
|
|
|
|
+
|
|
|
|
|
+ if use_console or not os.path.isfile(stub_file):
|
|
|
|
|
+ stub_file = os.path.join(bin_dir, 'deploy-stub' + suffix)
|
|
|
|
|
+
|
|
|
|
|
+ if not os.path.isfile(stub_file):
|
|
|
|
|
+ pytest.skip("Unable to find deploy-stub executable")
|
|
|
|
|
+
|
|
|
|
|
+ target = str(tmp_path / 'stubtest')
|
|
|
|
|
+
|
|
|
|
|
+ freezer = Freezer()
|
|
|
|
|
+ freezer.addModule('__main__', 'main.py', text='print("Hello world")')
|
|
|
|
|
+ freezer.done(addStartupModules=True)
|
|
|
|
|
+ freezer.generateRuntimeFromStub(target, open(stub_file, 'rb'), use_console)
|