def updateConfigurationModel(
         self,
         model: ExtruderConfigurationModel) -> ExtruderConfigurationModel:
     model.setHotendID(self.print_core_id)
     if self.material:
         model.setMaterial(self.material.createOutputModel())
     return model
Example #2
0
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
Example #3
0
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
    ]
Example #4
0
    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
Example #5
0
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
Example #7
0
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