def import_object_parameter_values(self, object_parameter_values) -> int: """ Import object parameter values from a list of object class name, object name, parameter name and value tuples Example:: object_parameter_values = [('object_class_name', 'object_name', 'parameter_name', 123.4), ('object_class_name', 'object_name', 'parameter_name2', '{"type":"time_series", "data": [1,2,3]}')} ('object_class_name', 'object_name', 'parameter_name', '{"type":"time_series", "data": [1,2,3]}'}, 'alternative')] import_object_parameter_values(db_map, data) Args: object_parameter_values (List[List/Tuple]): list/set/iterable of lists/tuples with object_class_name, object name, parameter name, (deserialized) parameter value, optional name of an alternative Returns: n_imported (int): Number of improrted entities """ n_imported, errors = import_functions.import_object_parameter_values( self._db_map, object_parameter_values ) if errors: _handle_errors(errors) return n_imported
def test_import_object_parameter_value_with_invalid_parameter(self): num_imported, errors = import_object_parameter_values( self.mock_db_map, [["existing_oc1", "existing_o1", "invalid_parameter", 1]]) self.mock_db_map._add_parameter_values.assert_called_once() self.mock_db_map._update_parameter_values.assert_called_once() self.assertEqual(len(errors), 1)
def test_import_existing_object_parameter_value(self): added = MagicMock() added.__iter__.return_value = {} added.count.return_value = 0 self.mock_db_map._add_parameter_values.return_value = added num_imported, errors = import_object_parameter_values( self.mock_db_map, [["existing_oc1", "existing_o1", "existing_p1", 1]]) self.mock_db_map._add_parameter_values.assert_called_once_with() self.mock_db_map._update_parameter_values.assert_called_once_with({ "id": 1, "value": "1" }) self.assertEqual(len(errors), 0)
def test_import_valid_object_parameter_value_string(self): ParameterValue = namedtuple( "ParameterValue", ["id", "parameter_id", "object_id", "relationship_id"]) added = MagicMock() added.__iter__.return_value = {ParameterValue(3, 3, 1, None)} added.count.return_value = 1 self.mock_db_map._add_parameter_values.return_value = added num_imported, errors = import_object_parameter_values( self.mock_db_map, [["existing_oc1", "existing_o1", "existing_p3", "test_string"]]) self.mock_db_map._add_parameter_values.assert_called_once_with({ "object_id": 1, "parameter_definition_id": 3, "value": '"test_string"' }) self.mock_db_map._update_parameter_values.assert_called_once() self.assertEqual(len(errors), 0)