1from basyx.aas
import model
7SM_ID =
"fluid40/sm_sdk_tools_unit_tests"
8SHELL_ID =
"fluid40/aas_sdk_tools_unit_tests"
10@pytest.fixture(scope="module")
13 return model_builder.create_base_submodel(identifier=SM_ID, id_short=
"sm_http_client_unit_tests", display_name=
"Submodel HTTP Client Unit Tests", description=
"This is a sample Submodel created for unit testing of the AAS HTTP Client.")
15@pytest.fixture(scope="module")
18 return model_builder.create_base_submodel(identifier=f
"{SM_ID}_temp", id_short=
"sm_http_client_unit_tests", display_name=
"Submodel HTTP Client Unit Tests", description=
"This is a sample Submodel created for unit testing of the AAS HTTP Client.")
20@pytest.fixture(scope="module")
23 return model_builder.create_base_submodel_element_property(id_short=
"sme_http_client_unit_tests", type=model.datatypes.String, value=
"This is a sample SubmodelElement created for unit testing of the AAS HTTP Client.", display_name=
"SubmodelElement HTTP Client Unit Tests", description=
"This is a sample SubmodelElement created for unit testing of the AAS HTTP Client.")
25@pytest.fixture(scope="module")
28 return model_builder.create_base_submodel_element_collection(id_short=
"sme_collection_http_client_unit_tests", value=[], display_name=
"SubmodelElementCollection HTTP Client Unit Tests", description=
"This is a sample SubmodelElementCollection created for unit testing of the AAS HTTP Client.")
30@pytest.fixture(scope="module")
33 aas = model_builder.create_base_aas(identifier=SHELL_ID, id_short=
"aas_http_client_unit_tests", global_asset_identifier=SHELL_ID, display_name=
"AAS HTTP Client Unit Tests", description=
"This is a sample AAS created for unit testing of the AAS HTTP Client.")
37 assert len(shared_aas.submodel) == 0
39 result = sdk_tools.add_submodel_to_aas(shared_aas, shared_sm)
41 assert len(shared_aas.submodel) == 1
43 assert shared_sm.id
in sdk_tools.get_submodel_ids(shared_aas)
47 assert len(shared_aas.submodel) == 1
49 result = sdk_tools.add_submodel_to_aas(shared_aas, shared_sm)
50 assert result
is False
51 assert len(shared_aas.submodel) == 1
54 assert len(shared_aas.submodel) == 1
56 result = sdk_tools.remove_submodel_from_aas(shared_aas, shared_sm_temp)
57 assert result
is False
58 assert len(shared_aas.submodel) == 1
61 assert len(shared_aas.submodel) == 1
63 result = sdk_tools.remove_submodel_from_aas(shared_aas, shared_sm)
65 assert len(shared_aas.submodel) == 0
69 sdk_tools.add_submodel_to_aas(shared_aas, shared_sm)
72 submodel_ids = sdk_tools.get_submodel_ids(shared_aas)
75 assert shared_sm.id
in submodel_ids
78 sdk_tools.remove_submodel_from_aas(shared_aas, shared_sm)
82 aas_dict = sdk_tools.convert_to_dict(shared_aas)
85 assert isinstance(aas_dict, dict)
88 assert "id" in aas_dict
89 assert "idShort" in aas_dict
90 assert "modelType" in aas_dict
91 assert aas_dict[
"modelType"] ==
"AssetAdministrationShell"
95 sm_dict = sdk_tools.convert_to_dict(shared_sm)
98 assert isinstance(sm_dict, dict)
101 assert "id" in sm_dict
102 assert "idShort" in sm_dict
103 assert "modelType" in sm_dict
104 assert sm_dict[
"modelType"]==
"Submodel"
108 result = sdk_tools.convert_to_dict(
None)
111 assert result
is None
116 aas_dict = sdk_tools.convert_to_dict(shared_aas)
118 assert aas_dict
is not None
119 assert isinstance(aas_dict, dict)
121 result = sdk_tools.convert_to_object(aas_dict)
124 assert isinstance(result, model.AssetAdministrationShell)
128 sm_dict = sdk_tools.convert_to_dict(shared_sm)
130 assert sm_dict
is not None
131 assert isinstance(sm_dict, dict)
133 result = sdk_tools.convert_to_object(sm_dict)
136 assert isinstance(result, model.Submodel)
140 result = sdk_tools.convert_to_object({})
143 assert result
is None
146 copied_element = sdk_tools.deep_copy(shared_aas)
148 assert copied_element
is not None
149 assert isinstance(copied_element, model.AssetAdministrationShell)
151 copied_aas: model.AssetAdministrationShell = copied_element
152 assert copied_aas.id == shared_aas.id
153 assert copied_aas.id_short == shared_aas.id_short
156 copied_element = sdk_tools.deep_copy(shared_sm)
158 assert copied_element
is not None
159 assert isinstance(copied_element, model.Submodel)
161 copied_sm: model.Submodel = copied_element
162 assert copied_sm.id == shared_sm.id
163 assert copied_sm.id_short == shared_sm.id_short
166 copied_element = sdk_tools.deep_copy(shared_sme)
168 assert copied_element
is not None
169 assert isinstance(copied_element, model.SubmodelElement)
171 copied_sme: model.SubmodelElement = copied_element
172 assert copied_sme.id_short == shared_sme.id_short
175 copied_element = sdk_tools.deep_copy(shared_sme_collection)
177 assert copied_element
is not None
178 assert isinstance(copied_element, model.SubmodelElementCollection)
180 copied_sme_collection: model.SubmodelElementCollection = copied_element
181 assert copied_sme_collection.id_short == shared_sme_collection.id_short