def add_link(values, update_tracker=False): """ .. function:: XML-RPC TestExecution.add_link(values) Add new URL link to a TestExecution :param values: Field values for :class:`tcms.core.contrib.linkreference.models.LinkReference` :type values: dict :param update_tracker: Automatically update Issue Tracker by placing a comment linking back to the failed TestExecution. :type update_tracker: bool, default=False :return: Serialized :class:`tcms.core.contrib.linkreference.models.LinkReference` object :raises: RuntimeError if operation not successfull .. note:: Always 'link' with IT instance if URL is from Kiwi TCMS own bug tracker! """ link, _ = LinkReference.objects.get_or_create(**values) response = model_to_dict(link) tracker = tracker_from_url(link.url) if (link.is_defect and update_tracker and not tracker.is_adding_testcase_to_issue_disabled()) or \ isinstance(tracker, KiwiTCMS): tracker.add_testexecution_to_issue([link.execution], link.url) return response
def add_link(values, update_tracker=False, **kwargs): """ .. function:: RPC TestExecution.add_link(values) Add new URL link to a TestExecution :param values: Field values for :class:`tcms.core.contrib.linkreference.models.LinkReference` :type values: dict :param update_tracker: Automatically update Issue Tracker by placing a comment linking back to the failed TestExecution. :type update_tracker: bool, default=False :param kwargs: Dict providing access to the current request, protocol entry point name and handler instance from the rpc method :return: Serialized :class:`tcms.core.contrib.linkreference.models.LinkReference` object :rtype: dict :raises RuntimeError: if operation not successfull .. note:: Always 'link' with IT instance if URL is from Kiwi TCMS own bug tracker! """ link, _ = LinkReference.objects.get_or_create(**values) response = model_to_dict(link) request = kwargs.get(REQUEST_KEY) tracker = tracker_from_url(link.url, request) if (link.is_defect and update_tracker and not tracker.is_adding_testcase_to_issue_disabled()) or \ isinstance(tracker, KiwiTCMS): tracker.add_testexecution_to_issue([link.execution], link.url) return response
def details(url, **kwargs): """ .. function:: RPC Bug.details(url) Returns details about bug at the given URL address. This method is used when generating additional information which is shown in the UI. :param url: URL address :type url: str :param \\**kwargs: Dict providing access to the current request, protocol, entry point name and handler instance from the rpc method :return: Detailed information about this URL. Depends on the underlying issue tracker. :rtype: dict """ result = cache.get(url) if result: return result request = kwargs.get(REQUEST_KEY) tracker = tracker_from_url(url, request) if not tracker: return {} result = tracker.details(url) cache.set(url, result) return result
def add_link(values, update_tracker=False, **kwargs): """ .. function:: RPC TestExecution.add_link(values) Add new URL link to a TestExecution :param values: Field values for :class:`tcms.core.contrib.linkreference.models.LinkReference` :type values: dict :param update_tracker: Automatically update Issue Tracker by placing a comment linking back to the failed TestExecution. :type update_tracker: bool, default=False :param kwargs: Dict providing access to the current request, protocol entry point name and handler instance from the rpc method :return: Serialized :class:`tcms.core.contrib.linkreference.models.LinkReference` object :rtype: dict :raises RuntimeError: if operation not successfull :raises ValueError: if input validation fails .. note:: Always 'link' with IT instance if URL is from Kiwi TCMS own bug tracker! """ # for backwards compatibility if "execution_id" in values: values["execution"] = values["execution_id"] del values["execution_id"] form = LinkReferenceForm(values) if form.is_valid(): link = form.save() else: raise ValueError(form_errors_to_list(form)) request = kwargs.get(REQUEST_KEY) tracker = tracker_from_url(link.url, request) if ( link.is_defect and tracker is not None and update_tracker and not tracker.is_adding_testcase_to_issue_disabled() ) or isinstance(tracker, KiwiTCMS): tracker.add_testexecution_to_issue([link.execution], link.url) return model_to_dict(link)
def details(url): """ .. function:: XML-RPC Bug.details(url) Returns details about bug at the given URL address. This method is used when generating additional information which is shown in the UI. :param url: URL address :type url: str :return: Detailed information about this URL. Depends on the underlying issue tracker. :rtype: dict """ result = cache.get(url) if not result: tracker = tracker_from_url(url) result = tracker.details(url) cache.set(url, result) return result