mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-19 04:37:51 -06:00
Also add tests for configurationModel
This commit is contained in:
parent
369c64e1b6
commit
4acc480544
3 changed files with 48 additions and 2 deletions
|
@ -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:
|
||||||
|
|
45
tests/PrinterOutput/TestConfigurationModel.py
Normal file
45
tests/PrinterOutput/TestConfigurationModel.py
Normal 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
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue