def test_addRemoveOutputDevice(): manager = OutputDeviceManager() manager.outputDevicesChanged.emit = MagicMock() manager.activeDeviceChanged.emit = MagicMock() output_device = OutputDevice("test_device_one") output_device.setPriority(2) output_device_2 = OutputDevice("test_device_two") output_device_2.setPriority(9001) manager.addOutputDevice(output_device) assert manager.outputDevicesChanged.emit.call_count == 1 assert manager.getOutputDevice("test_device_one") == output_device # Our new device is also the one with the highest priority (as it's the only one). So it should be active. assert manager.getActiveDevice() == output_device manager.addOutputDevice(output_device) assert manager.outputDevicesChanged.emit.call_count == 1 manager.addOutputDevice(output_device_2) assert manager.outputDevicesChanged.emit.call_count == 2 # We added a new device with a higher priority, so that one should be the active one assert manager.getActiveDevice() == output_device_2 assert set([output_device, output_device_2]) == set(manager.getOutputDevices()) assert set(["test_device_one", "test_device_two"]) == set(manager.getOutputDeviceIds()) # Try to manually change the active device a few times manager.setActiveDevice("test_device_one") assert manager.activeDeviceChanged.emit.call_count == 3 assert manager.getActiveDevice() == output_device manager.setActiveDevice("test_device_two") assert manager.activeDeviceChanged.emit.call_count == 4 assert manager.getActiveDevice() == output_device_2 # As usual, doing it twice shouldn't cause more updates manager.setActiveDevice("test_device_two") assert manager.activeDeviceChanged.emit.call_count == 4 manager.setActiveDevice("Whatever") # Simply shouldn't cause issues. # Time to remove the device again assert manager.removeOutputDevice("test_device_two") assert manager.getActiveDevice() == output_device assert manager.outputDevicesChanged.emit.call_count == 3 # Trying to remove it again should return false assert not manager.removeOutputDevice("test_device_two") assert manager.outputDevicesChanged.emit.call_count == 3
def test_getAndSet(data): output_device = OutputDevice("Random_id") output_device.metaDataChanged = MagicMock() # Attempt to set the value getattr(output_device, "set" + data["attribute"])(data["value"]) # Ensure that the value got set assert getattr(output_device, "get" + data["attribute"])() == data["value"] # Check if signal fired. assert output_device.metaDataChanged.emit.call_count == 1 # Attempt to set the setter to the same value again. getattr(output_device, "set" + data["attribute"])(data["value"]) # Ensure signal fired only once! assert output_device.metaDataChanged.emit.call_count == 1
def test_createOutputDevice(): output_device = OutputDevice("Random_id") assert output_device.getId() == "Random_id"