diff --git a/src/Mod/AddonManager/AddonManagerTest/gui/test_workers_startup.py b/src/Mod/AddonManager/AddonManagerTest/gui/test_workers_startup.py index 9e074bafd6..c4104610c5 100644 --- a/src/Mod/AddonManager/AddonManagerTest/gui/test_workers_startup.py +++ b/src/Mod/AddonManager/AddonManagerTest/gui/test_workers_startup.py @@ -27,10 +27,52 @@ import os import tempfile import FreeCAD +from PySide2 import QtCore + +import NetworkManager +from Addon import Addon +from addonmanager_workers_startup import ( + CreateAddonListWorker + ) class TestWorkersStartup(unittest.TestCase): MODULE = "test_workers_startup" # file name without extension def setUp(self): - pass \ No newline at end of file + self.test_dir = os.path.join(FreeCAD.getHomePath(), "Mod", "AddonManager", "AddonManagerTest", "data") + + url = "https://api.github.com/zen" + NetworkManager.InitializeNetworkManager() + result = NetworkManager.AM_NETWORK_MANAGER.blocking_get(url) + if result is None: + self.skipTest("No active internet connection detected") + + self.addon_list = [] + self.macro_counter = 0 + self.workbench_counter = 0 + self.prefpack_counter = 0 + + def test_create_addon_list_worker(self): + """ Test whether any addons are added: runs the full query, so this potentially is a SLOW test """ + worker = CreateAddonListWorker() + worker.addon_repo.connect(self._addon_added) + worker.start() + while worker.isRunning(): + QtCore.QCoreApplication.processEvents(QtCore.QEventLoop.AllEvents, 50) + + self.assertGreater(self.macro_counter,0, "No macros returned") + self.assertGreater(self.workbench_counter,0, "No workbenches returned") + self.assertGreater(self.prefpack_counter,0, "No preference packs returned") + + def _addon_added(self, addon:Addon): + """ Callback for adding an Addon: tracks the list, and counts the various types """ + print (f"Addon Test: {addon.name}") + self.addon_list.append(addon) + if addon.contains_workbench(): + self.workbench_counter += 1 + if addon.contains_macro(): + self.macro_counter += 1 + if addon.contains_preference_pack(): + self.prefpack_counter += 1 +