Added tests for adding & removing discovered devices

CURA-6179
This commit is contained in:
Jaime van Kessel 2019-02-28 09:47:25 +01:00
parent bbe1b1590a
commit 1c7e047a38
2 changed files with 20 additions and 1 deletions

View File

@ -162,6 +162,7 @@ class MachineManager(QObject):
printerConnectedStatusChanged = pyqtSignal() # Emitted every time the active machine change or the outputdevices change printerConnectedStatusChanged = pyqtSignal() # Emitted every time the active machine change or the outputdevices change
rootMaterialChanged = pyqtSignal() rootMaterialChanged = pyqtSignal()
discoveredPrintersChanged = pyqtSignal()
def setInitialActiveMachine(self) -> None: def setInitialActiveMachine(self) -> None:
active_machine_id = self._application.getPreferences().getValue("cura/active_machine") active_machine_id = self._application.getPreferences().getValue("cura/active_machine")
@ -183,12 +184,18 @@ class MachineManager(QObject):
def addDiscoveredPrinter(self, key: str, name: str, create_callback: Callable[[str], None], machine_type: str) -> None: def addDiscoveredPrinter(self, key: str, name: str, create_callback: Callable[[str], None], machine_type: str) -> None:
if key not in self._discovered_printers: if key not in self._discovered_printers:
self._discovered_printers[key] = DiscoveredPrinter(key, name, create_callback, machine_type) self._discovered_printers[key] = DiscoveredPrinter(key, name, create_callback, machine_type)
self.discoveredPrintersChanged.emit()
else: else:
Logger.log("e", "Printer with the key %s was already in the discovered printer list", key) Logger.log("e", "Printer with the key %s was already in the discovered printer list", key)
def removeDiscoveredPrinter(self, key: str) -> None: def removeDiscoveredPrinter(self, key: str) -> None:
if key in self._discovered_printers: if key in self._discovered_printers:
del self._discovered_printers[key] del self._discovered_printers[key]
self.discoveredPrintersChanged.emit()
@pyqtProperty("QVariantList", notify = discoveredPrintersChanged)
def discoveredPrinters(self):
return list(self._discovered_printers.values())
@pyqtSlot(str) @pyqtSlot(str)
def addMachineFromDiscoveredPrinter(self, key: str) -> None: def addMachineFromDiscoveredPrinter(self, key: str) -> None:

View File

@ -11,6 +11,7 @@ from cura.Settings.MachineManager import MachineManager
def container_registry() -> ContainerRegistry: def container_registry() -> ContainerRegistry:
return MagicMock() return MagicMock()
@pytest.fixture() @pytest.fixture()
def extruder_manager(application, container_registry) -> ExtruderManager: def extruder_manager(application, container_registry) -> ExtruderManager:
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)): with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
@ -21,6 +22,7 @@ def extruder_manager(application, container_registry) -> ExtruderManager:
return manager return manager
@pytest.fixture() @pytest.fixture()
def machine_manager(application, extruder_manager, container_registry) -> MachineManager: def machine_manager(application, extruder_manager, container_registry) -> MachineManager:
application.getExtruderManager = MagicMock(return_value = extruder_manager) application.getExtruderManager = MagicMock(return_value = extruder_manager)
@ -49,4 +51,14 @@ def test_discoveredMachine(machine_manager):
mocked_callback = MagicMock() mocked_callback = MagicMock()
machine_manager.addDiscoveredPrinter("test", "zomg", mocked_callback, "derp") machine_manager.addDiscoveredPrinter("test", "zomg", mocked_callback, "derp")
machine_manager.addMachineFromDiscoveredPrinter("test") machine_manager.addMachineFromDiscoveredPrinter("test")
mocked_callback.assert_called_with("test") mocked_callback.assert_called_with("test")
assert len(machine_manager.discoveredPrinters) == 1
# Test if removing it works
machine_manager.removeDiscoveredPrinter("test")
assert len(machine_manager.discoveredPrinters) == 0
# Just in case, nothing should happen.
machine_manager.addMachineFromDiscoveredPrinter("test")
assert mocked_callback.call_count == 1