Browse Source

Add some tests for DiscoveredPrintersModel

Jaime van Kessel 5 years ago
parent
commit
54ffcc478c
1 changed files with 36 additions and 1 deletions
  1. 36 1
      tests/Machines/Models/TestDiscoveredPrintersModel.py

+ 36 - 1
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