from unittest.mock import MagicMock import pytest from cura.Machines.Models.DiscoveredCloudPrintersModel import DiscoveredCloudPrintersModel @pytest.fixture() def discovered_cloud_printers_model(application) -> DiscoveredCloudPrintersModel: return DiscoveredCloudPrintersModel(application) def test_discoveredCloudPrinters(discovered_cloud_printers_model): new_devices = [{ "key": "Bite my shiny metal a$$", "name": "Bender", "machine_type": "Bender robot", "firmware_version": "8.0.0.8.5" }] discovered_cloud_printers_model.cloudPrintersDetectedChanged = MagicMock() # Test if adding a cloud printer in the model works discovered_cloud_printers_model.addDiscoveredCloudPrinters(new_devices) assert len(discovered_cloud_printers_model._discovered_cloud_printers_list) == 1 assert discovered_cloud_printers_model.cloudPrintersDetectedChanged.emit.call_count == 1 # Make sure that the signal was called with "True" as input discovered_cloud_printers_model.cloudPrintersDetectedChanged.emit.assert_called_with(True) # Test if clearing the model works discovered_cloud_printers_model.clear() assert len(discovered_cloud_printers_model._discovered_cloud_printers_list) == 0 assert discovered_cloud_printers_model.cloudPrintersDetectedChanged.emit.call_count == 2 # Make sure that the signal was called with "False" as input discovered_cloud_printers_model.cloudPrintersDetectedChanged.emit.assert_called_with(False)