123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import pytest
- import UM.Settings.ContainerRegistry
- import UM.Settings.ContainerStack
- from UM.Settings.DefinitionContainer import DefinitionContainer
- import os
- import os.path
- import uuid
- from UM.Resources import Resources
- Resources.addSearchPath(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "resources")))
- machine_filepaths = os.listdir(os.path.join(os.path.dirname(__file__), "..", "..", "resources", "definitions"))
- all_meshes = os.listdir(os.path.join(os.path.dirname(__file__), "..", "..", "resources", "meshes"))
- all_images = os.listdir(os.path.join(os.path.dirname(__file__), "..", "..", "resources", "images"))
- @pytest.fixture
- def definition_container():
- uid = str(uuid.uuid4())
- result = UM.Settings.DefinitionContainer.DefinitionContainer(uid)
- assert result.getId() == uid
- return result
- @pytest.mark.parametrize("file_name", machine_filepaths)
- def test_validateMachineDefinitionContainer(file_name, definition_container):
- if file_name == "fdmprinter.def.json" or file_name == "fdmextruder.def.json":
- return
- definition_path = os.path.join(os.path.dirname(__file__), "..", "..", "resources", "definitions")
- assertIsDefinitionValid(definition_container, definition_path, file_name)
- def assertIsDefinitionValid(definition_container, path, file_name):
- with open(os.path.join(path, file_name), encoding = "utf-8") as data:
- json = data.read()
- parser, is_valid = definition_container.readAndValidateSerialized(json)
- assert is_valid
- metadata = DefinitionContainer.deserializeMetadata(json, "whatever")
-
- if "platform" in metadata[0]:
- assert metadata[0]["platform"] in all_meshes
- if "platform_texture" in metadata[0]:
- assert metadata[0]["platform_texture"] in all_images
|