Ejemplo n.º 1
0
    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)