diff --git a/tests/Machines/Models/TestDiscoveredPrintersModel.py b/tests/Machines/Models/TestDiscoveredPrintersModel.py index 8d9a770c2a..3a25fa8a02 100644 --- a/tests/Machines/Models/TestDiscoveredPrintersModel.py +++ b/tests/Machines/Models/TestDiscoveredPrintersModel.py @@ -2,13 +2,17 @@ from unittest.mock import MagicMock, PropertyMock import pytest -from cura.Machines.Models.DiscoveredPrintersModel import DiscoveredPrintersModel +from cura.Machines.Models.DiscoveredPrintersModel import DiscoveredPrintersModel, DiscoveredPrinter @pytest.fixture() def discovered_printer_model(application) -> DiscoveredPrintersModel: return DiscoveredPrintersModel(application) +@pytest.fixture() +def discovered_printer() -> DiscoveredPrinter: + return DiscoveredPrinter("127.0.0.1", "zomg", "yay", None, "bleep", MagicMock()) + def test_discoveredPrinters(discovered_printer_model): mocked_device = MagicMock() @@ -23,6 +27,37 @@ def test_discoveredPrinters(discovered_printer_model): assert len(discovered_printer_model.discoveredPrinters) == 1 + discovered_printer_model.discoveredPrintersChanged = MagicMock() # Test if removing it works discovered_printer_model.removeDiscoveredPrinter("ip") assert len(discovered_printer_model.discoveredPrinters) == 0 + assert discovered_printer_model.discoveredPrintersChanged.emit.call_count == 1 + # Removing it again shouldn't cause another signal emit + discovered_printer_model.removeDiscoveredPrinter("ip") + assert discovered_printer_model.discoveredPrintersChanged.emit.call_count == 1 + +test_validate_data_get_set = [ + {"attribute": "name", "value": "zomg"}, + {"attribute": "machineType", "value": "BHDHAHHADAD"}, +] + +@pytest.mark.parametrize("data", test_validate_data_get_set) +def test_getAndSet(data, discovered_printer): + # Attempt to set the value + # Convert the first letter into a capital + attribute = list(data["attribute"]) + attribute[0] = attribute[0].capitalize() + attribute = "".join(attribute) + + # Attempt to set the value + getattr(discovered_printer, "set" + attribute)(data["value"]) + + # Ensure that the value got set + assert getattr(discovered_printer, data["attribute"]) == data["value"] + + +def test_isHostofGroup(discovered_printer): + discovered_printer.device.clusterSize = 0 + assert not discovered_printer.isHostOfGroup + discovered_printer.device.clusterSize = 2 + assert discovered_printer.isHostOfGroup \ No newline at end of file