TestDiscoveredPrintersModel.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from unittest.mock import MagicMock, PropertyMock
  2. import pytest
  3. from cura.Machines.Models.DiscoveredPrintersModel import DiscoveredPrintersModel, DiscoveredPrinter
  4. @pytest.fixture()
  5. def discovered_printer_model(application) -> DiscoveredPrintersModel:
  6. return DiscoveredPrintersModel(application)
  7. @pytest.fixture()
  8. def discovered_printer() -> DiscoveredPrinter:
  9. return DiscoveredPrinter("127.0.0.1", "zomg", "yay", None, "bleep", MagicMock())
  10. def test_discoveredPrinters(discovered_printer_model):
  11. mocked_device = MagicMock()
  12. cluster_size = PropertyMock(return_value = 1)
  13. type(mocked_device).clusterSize = cluster_size
  14. mocked_callback = MagicMock()
  15. discovered_printer_model.addDiscoveredPrinter("ip", "key", "name", mocked_callback, "machine_type", mocked_device)
  16. device = discovered_printer_model.discoveredPrinters[0]
  17. discovered_printer_model.createMachineFromDiscoveredPrinter(device)
  18. mocked_callback.assert_called_with("key")
  19. assert len(discovered_printer_model.discoveredPrinters) == 1
  20. discovered_printer_model.discoveredPrintersChanged = MagicMock()
  21. # Test if removing it works
  22. discovered_printer_model.removeDiscoveredPrinter("ip")
  23. assert len(discovered_printer_model.discoveredPrinters) == 0
  24. assert discovered_printer_model.discoveredPrintersChanged.emit.call_count == 1
  25. # Removing it again shouldn't cause another signal emit
  26. discovered_printer_model.removeDiscoveredPrinter("ip")
  27. assert discovered_printer_model.discoveredPrintersChanged.emit.call_count == 1
  28. test_validate_data_get_set = [
  29. {"attribute": "name", "value": "zomg"},
  30. {"attribute": "machineType", "value": "BHDHAHHADAD"},
  31. ]
  32. @pytest.mark.parametrize("data", test_validate_data_get_set)
  33. def test_getAndSet(data, discovered_printer):
  34. # Attempt to set the value
  35. # Convert the first letter into a capital
  36. attribute = list(data["attribute"])
  37. attribute[0] = attribute[0].capitalize()
  38. attribute = "".join(attribute)
  39. # Attempt to set the value
  40. getattr(discovered_printer, "set" + attribute)(data["value"])
  41. # Ensure that the value got set
  42. assert getattr(discovered_printer, data["attribute"]) == data["value"]
  43. def test_isHostofGroup(discovered_printer):
  44. discovered_printer.device.clusterSize = 0
  45. assert not discovered_printer.isHostOfGroup
  46. discovered_printer.device.clusterSize = 2
  47. assert discovered_printer.isHostOfGroup