Also add tests for configurationModel

This commit is contained in:
Jaime van Kessel 2019-02-15 15:27:57 +01:00
parent 369c64e1b6
commit 4acc480544
3 changed files with 48 additions and 2 deletions

View file

@ -40,7 +40,9 @@ class ConfigurationModel(QObject):
return self._extruder_configurations return self._extruder_configurations
def setBuildplateConfiguration(self, buildplate_configuration: str) -> None: def setBuildplateConfiguration(self, buildplate_configuration: str) -> None:
if self._buildplate_configuration != buildplate_configuration:
self._buildplate_configuration = buildplate_configuration self._buildplate_configuration = buildplate_configuration
self.configurationChanged.emit()
@pyqtProperty(str, fset = setBuildplateConfiguration, notify = configurationChanged) @pyqtProperty(str, fset = setBuildplateConfiguration, notify = configurationChanged)
def buildplateConfiguration(self) -> str: def buildplateConfiguration(self) -> str:

View file

@ -0,0 +1,45 @@
from unittest.mock import MagicMock
import pytest
from cura.PrinterOutput.ConfigurationModel import ConfigurationModel
from cura.PrinterOutput.ExtruderConfigurationModel import ExtruderConfigurationModel
test_validate_data_get_set = [
{"attribute": "extruderConfigurations", "value": [ExtruderConfigurationModel()]},
{"attribute": "buildplateConfiguration", "value": "BHDHAHHADAD"},
{"attribute": "printerType", "value": ":(", "check_signal": False},
]
@pytest.mark.parametrize("data", test_validate_data_get_set)
def test_getAndSet(data):
model = ConfigurationModel()
# Convert the first letter into a capital
attribute = list(data["attribute"])
attribute[0] = attribute[0].capitalize()
attribute = "".join(attribute)
# mock the correct emit
model.configurationChanged = MagicMock()
signal = model.configurationChanged
# Attempt to set the value
getattr(model, "set" + attribute)(data["value"])
# Check if signal fired.
if data.get("check_signal", True):
assert signal.emit.call_count == 1
# Ensure that the value got set
assert getattr(model, data["attribute"]) == data["value"]
# Attempt to set the value again
getattr(model, "set" + attribute)(data["value"])
# The signal should not fire again
if data.get("check_signal", True):
assert signal.emit.call_count == 1

View file

@ -4,7 +4,6 @@ from unittest.mock import MagicMock
import pytest import pytest
from cura.PrinterOutput.ConfigurationModel import ConfigurationModel
from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel
from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel