aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py')
-rw-r--r--sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py b/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py
new file mode 100644
index 000000000..40afc7f5c
--- /dev/null
+++ b/sources/pyside6/tests/tools/pyside6-deploy/extensive_deploy_test.py
@@ -0,0 +1,88 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+"""
+ Extensive manual test of pyside6-deploy
+
+ Note: Not to be added into the CI
+"""
+
+import logging
+import unittest
+import tempfile
+import shutil
+import sys
+import os
+import importlib
+from pathlib import Path
+
+
+class TestPySide6Deploy(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.pyside_root = Path(__file__).parents[5].resolve()
+ example_root = cls.pyside_root / "examples"
+ example_widgets = example_root / "widgets" / "widgets" / "tetrix"
+ example_qml = example_root / "qml" / "editingmodel"
+ example_webenginequick = example_root / "webenginequick" / "nanobrowser"
+ cls.temp_dir = tempfile.mkdtemp()
+ cls.temp_example_widgets = Path(
+ shutil.copytree(example_widgets, Path(cls.temp_dir) / "tetrix")
+ ).resolve()
+ cls.temp_example_qml = Path(
+ shutil.copytree(example_qml, Path(cls.temp_dir) / "editingmodel")
+ ).resolve()
+ cls.temp_example_webenginequick = Path(
+ shutil.copytree(example_webenginequick, Path(cls.temp_dir) / "nanobrowser")
+ ).resolve()
+ cls.current_dir = Path.cwd()
+ cls.linux_onefile_icon = (
+ cls.pyside_root / "sources" / "pyside-tools" / "deploy_lib" / "pyside_icon.jpg"
+ )
+
+ sys.path.append(str(cls.pyside_root / "sources" / "pyside-tools"))
+ cls.deploy_lib = importlib.import_module("deploy_lib")
+ cls.deploy = importlib.import_module("deploy")
+ sys.modules["deploy"] = cls.deploy
+
+ def setUpWidgets(self):
+ os.chdir(self.temp_example_widgets)
+ self.main_file = self.temp_example_widgets / "tetrix.py"
+ self.config_file = self.temp_example_widgets / "pysidedeploy.spec"
+
+ def testWidget(self):
+ self.setUpWidgets()
+ self.deploy.main(self.main_file, name="widget_app", loglevel=logging.INFO,
+ keep_deployment_files=True, force=True)
+
+ print("Now testing Widget with config file")
+ self.deploy.main(self.main_file, config_file=self.config_file, loglevel=logging.INFO,
+ force=True)
+
+ def setUpQml(self):
+ os.chdir(self.temp_example_qml)
+ self.main_file = self.temp_example_qml / "main.py"
+ self.config_file = self.temp_example_qml / "pysidedeploy.spec"
+
+ def testQml(self):
+ self.setUpQml()
+ self.deploy.main(self.main_file, name="qml_app", loglevel=logging.INFO,
+ keep_deployment_files=True, force=True)
+
+ def testWebEngineQuickDryRun(self):
+ os.chdir(self.temp_example_webenginequick)
+ main_file = self.temp_example_webenginequick / "quicknanobrowser.py"
+ self.deploy.main(main_file, name="qml_app", keep_deployment_files=True,
+ loglevel=logging.INFO, force=True)
+
+ def tearDown(self) -> None:
+ super().tearDown()
+ os.chdir(self.current_dir)
+
+ @classmethod
+ def tearDownClass(cls) -> None:
+ shutil.rmtree(Path(cls.temp_dir))
+
+
+if __name__ == "__main__":
+ unittest.main()