def updateConfigurationModel( self, model: ExtruderConfigurationModel) -> ExtruderConfigurationModel: model.setHotendID(self.print_core_id) if self.material: model.setMaterial(self.material.createOutputModel()) return model
def _build_printer_conf_model() -> PrinterConfigurationModel: """Returns printer's configuration model.""" printer_configuration_model = PrinterConfigurationModel() extruder_conf_model = ExtruderConfigurationModel() extruder_conf_model.setPosition(0) printer_configuration_model.setExtruderConfigurations( [extruder_conf_model]) printer_configuration_model.setPrinterType('type') return printer_configuration_model
def test_uniqueConfigurations(printer_output_device): printer = PrinterOutputModel(MagicMock()) # Add a printer and fire the signal that ensures they get hooked up correctly. printer_output_device._printers = [printer] printer_output_device._onPrintersChanged() assert printer_output_device.uniqueConfigurations == [] configuration = PrinterConfigurationModel() printer.addAvailableConfiguration(configuration) assert printer_output_device.uniqueConfigurations == [configuration] # Once the type of printer is set, it's active configuration counts as being set. # In that case, that should also be added to the list of available configurations printer.updateType("blarg!") loaded_material = MaterialOutputModel(guid="", type="PLA", color="Blue", brand="Generic", name="Blue PLA") loaded_left_extruder = ExtruderConfigurationModel(0) loaded_left_extruder.setMaterial(loaded_material) loaded_right_extruder = ExtruderConfigurationModel(1) loaded_right_extruder.setMaterial(loaded_material) printer.printerConfiguration.setExtruderConfigurations( [loaded_left_extruder, loaded_right_extruder]) assert printer_output_device.uniqueConfigurations == [ configuration, printer.printerConfiguration ]
def _createPrintJobModel(self, data: Dict[str, Any]) -> UM3PrintJobOutputModel: print_job = UM3PrintJobOutputModel( output_controller=ClusterUM3PrinterOutputController(self), key=data["uuid"], name=data["name"]) configuration = PrinterConfigurationModel() extruders = [ ExtruderConfigurationModel(position=idx) for idx in range(0, self._number_of_extruders) ] for index in range(0, self._number_of_extruders): try: extruder_data = data["configuration"][index] except IndexError: continue extruder = extruders[int( data["configuration"][index]["extruder_index"])] extruder.setHotendID(extruder_data.get("print_core_id", "")) extruder.setMaterial( self._createMaterialOutputModel( extruder_data.get("material", {}))) configuration.setExtruderConfigurations(extruders) print_job.updateConfiguration(configuration) print_job.setCompatibleMachineFamilies( data.get("compatible_machine_families", [])) print_job.stateChanged.connect(self._printJobStateChanged) return print_job
def test_uniqueConfigurations_empty_is_filtered_out(printer_output_device): printer = PrinterOutputModel(MagicMock()) # Add a printer and fire the signal that ensures they get hooked up correctly. printer_output_device._printers = [printer] printer_output_device._onPrintersChanged() printer.updateType("blarg!") empty_material = MaterialOutputModel(guid = "", type = "empty", color = "empty", brand = "Generic", name = "Empty") empty_left_extruder = ExtruderConfigurationModel(0) empty_left_extruder.setMaterial(empty_material) empty_right_extruder = ExtruderConfigurationModel(1) empty_right_extruder.setMaterial(empty_material) printer.printerConfiguration.setExtruderConfigurations([empty_left_extruder, empty_right_extruder]) assert printer_output_device.uniqueConfigurations == []
def createConfigurationModel(self) -> ExtruderConfigurationModel: model = ExtruderConfigurationModel(position=self.extruder_index) self.updateConfigurationModel(model) return model
from unittest.mock import MagicMock import pytest from cura.PrinterOutput.Models.PrinterConfigurationModel import PrinterConfigurationModel from cura.PrinterOutput.Models.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 = PrinterConfigurationModel() # Convert the first letter into a capital attribute = list(data["attribute"]) attribute[0] = attribute[0].capitalize()
def updateConfigurationModel(self, model: ExtruderConfigurationModel) -> ExtruderConfigurationModel: model.setHotendID(self.print_core_id) if self.material: model.setMaterial(self.material.createOutputModel()) return model