Source code for tcms.rpc.api.testexecutionstatus

# Copyright (c) 2019-2026 Alexander Todorov <atodorov@MrSenko.com>

# Licensed under the GPL 2.0: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

from django.forms.models import model_to_dict
from modernrpc.core import rpc_method

from tcms.rpc.api.forms.testrun import TestExecutionStatusForm
from tcms.rpc.decorators import permissions_required
from tcms.testruns.models import TestExecutionStatus


[docs] @permissions_required("testruns.view_testexecutionstatus") @rpc_method(name="TestExecutionStatus.filter") def filter(query): # pylint: disable=redefined-builtin """ .. function:: RPC TestExecutionStatus.filter(query) Search and return the list of test case run statuses. :param query: Field lookups for :class:`tcms.testruns.models.TestExecutionStatus` :type query: dict :return: Serialized list of :class:`tcms.testruns.models.TestExecutionStatus` objects :rtype: list(dict) """ return list( TestExecutionStatus.objects.filter(**query) .values("id", "name", "weight", "icon", "color") .order_by("id") .distinct() )
[docs] @permissions_required("testruns.add_testexecutionstatus") @rpc_method(name="TestExecutionStatus.create") def create(values): """ .. function:: RPC TestExecutionStatus.create(values) Create a new TestExecutionStatus object and store it in the database. :param values: Field values for :class:`tcms.testruns.models.TestExecutionStatus` :type values: dict :return: Serialized :class:`tcms.testruns.models.TestExecutionStatus` object :rtype: dict :raises ValueError: if input values don't validate :raises PermissionDenied: if missing *testruns.add_testexecutionstatus* permission .. versionadded:: 15.2 """ form = TestExecutionStatusForm(values) if form.is_valid(): status = form.save() return model_to_dict(status) raise ValueError(list(form.errors.items()))