Exemplo n.º 1
0
 def test_B_CopyDictNoNones(self):
     d1 = {'a': None, 'b': 1, 'c': None, 'd': None, 'e': 2, 'f': 3}
     d1copy = copy.deepcopy(d1)
     d2 = phlsys_dictutil.copy_dict_no_nones(d1)
     d3 = {'b': 1, 'e': 2, 'f': 3}
     self.assertDictEqual(d1, d1copy)
     self.assertNotEqual(d1, d2)
     self.assertDictEqual(d2, d3)
 def test_B_CopyDictNoNones(self):
     d1 = {'a': None, 'b': 1, 'c': None, 'd': None, 'e': 2, 'f': 3}
     d1copy = copy.deepcopy(d1)
     d2 = phlsys_dictutil.copy_dict_no_nones(d1)
     d3 = {'b': 1, 'e': 2, 'f': 3}
     self.assertDictEqual(d1, d1copy)
     self.assertNotEqual(d1, d2)
     self.assertDictEqual(d2, d3)
def create_comment(
        conduit, revisionId, message=None, action=None, silent=None):
    d = {
        "revision_id": revisionId, "message": message,
        "action": action, "silent": silent
    }
    d = phlsys_dictutil.copy_dict_no_nones(d)
    response = conduit.call('differential.createcomment', d)
    response['revisionid'] = int(response['revisionid'])
    return RevisionResponse(**response)
def parse_commit_message(conduit, corpus, partial=None):
    d = {"corpus": corpus, "partial": partial}
    d = phlsys_dictutil.copy_dict_no_nones(d)
    p = ParseCommitMessageResponse(
        **conduit.call("differential.parsecommitmessage", d))
    phlsys_dictutil.ensure_keys_default(
        p.fields, "", ["summary", "testPlan", "title"])
    phlsys_dictutil.ensure_keys_default(
        p.fields, [], ["reviewerPHIDs"])
    return p
def query(
        conduit,
        ids=None):  # list(uint)
    # TODO: typechecking
    d = phlsys_dictutil.copy_dict_no_nones({'ids': ids})
    response = conduit.call("differential.query", d)
    query_response_list = []
    for r in response:
        phlsys_dictutil.ensure_keys(r, ["sourcePath", "auxiliary"])
        r["id"] = int(r["id"])
        r["status"] = int(r["status"])
        query_response_list.append(QueryResponse(**r))
    return query_response_list
def query(
        conduit,
        ids=None):  # list(uint)
    # TODO: typechecking
    d = phlsys_dictutil.copy_dict_no_nones({'ids': ids})
    response = conduit("differential.query", d)
    query_response_list = []
    for r in response:
        phlsys_dictutil.ensure_keys(r, ["sourcePath", "auxiliary"])
        r["id"] = int(r["id"])
        r["status"] = int(r["status"])
        query_response_list.append(QueryResponse(**r))
    return query_response_list
def parse_commit_message(conduit, corpus, partial=None):
    d = {"corpus": corpus, "partial": partial}
    d = phlsys_dictutil.copy_dict_no_nones(d)
    p = ParseCommitMessageResponse(
        **conduit("differential.parsecommitmessage", d))

    if not isinstance(p.fields, dict):
        raise UnknownParseCommitMessageResponseError(
            "p.fields is not a dict: {}".format(p.fields))

    phlsys_dictutil.ensure_keys_default(
        p.fields, "", ["summary", "testPlan", "title"])
    phlsys_dictutil.ensure_keys_default(
        p.fields, [], ["reviewerPHIDs"])
    return p
def create_comment(
        conduit,
        revisionId,
        message=None,
        action=None,
        silent=None,
        attach_inlines=None):
    d = {
        "revision_id": revisionId,
        "message": message,
        "action": action,
        "silent": silent
    }
    if attach_inlines:
        d['attach_inlines'] = attach_inlines
    d = phlsys_dictutil.copy_dict_no_nones(d)
    response = conduit('differential.createcomment', d)
    response['revisionid'] = int(response['revisionid'])
    return RevisionResponse(**response)
def create_inline_comment(
        conduit,
        revisionId,
        file_path,
        start_line,
        message,
        is_right_side=True,
        line_count=None):
    d = {
        "revisionID": revisionId,
        "filePath": file_path,
        "content": message,
        "lineNumber": start_line,
        "isNewFile": is_right_side,
        'lineLength': line_count,
    }

    d = phlsys_dictutil.copy_dict_no_nones(d)

    return conduit('differential.createinline', d)
def create_inline_comment(
        conduit,
        revisionId,
        file_path,
        start_line,
        message,
        is_right_side=True,
        line_count=None):
    d = {
        "revisionID": revisionId,
        "filePath": file_path,
        "content": message,
        "lineNumber": start_line,
        "isNewFile": is_right_side,
        'lineLength': line_count,
    }

    d = phlsys_dictutil.copy_dict_no_nones(d)

    return conduit('differential.createinline', d)
def _get_diff(conduit, revision_id=None, diff_id=None):
    d = {"revision_id": revision_id, "diff_id": diff_id}
    d = phlsys_dictutil.copy_dict_no_nones(d)
    response = conduit.call("differential.getdiff", d)
    response["id"] = int(response["id"])
    return GetDiffIdResponse(**response)
def create_diff(
        conduit,
        changes_dict,
        source_machine,
        source_path,
        branch,
        source_control_system,  # svn or git
        source_control_path,
        source_control_base_revision,
        lint_status,
        unit_status,
        bookmark=None,
        parent_revision_id=None,
        creation_method=None,
        author_phid=None,
        arcanist_project=None,
        repository_uuid=None):
    """@todo: Docstring for create_diff.

    :conduit: conduit to operate on
    :changes_dict: changes response, 'changes' field of GetDiffResponse
    :source_machine: string name of submitting machine
    :source_path: string @todo
    :branch: string name of the branch this change is being submitted from
    :source_control_system: string? svn or git
    :source_control_path: @todo
    :source_control_base_revision: @todo
    :lint_status: string? none, skip, okay, warn, fail, postponed
    :unit_status: string? none, skip, okay, warn, fail, postponed
    :bookmark: optional string bookmark (mercurial term?)
    :parent_revision_id: @todo
    :creation_method: @todo
    :author_phid: optional string phid of the author
    :arcanist_project: optional string human context for the change
    :repository_uuid: @todo
    :returns: @todo

    Perhaps the best reference for this function is in the Phabricator source
    code itself.
    .../differential/conduit/ConduitAPI_differential_creatediff_Method.php

    """
    d = {
        "changes": changes_dict,
        "sourceMachine": source_machine,
        "sourcePath": source_path,
        "branch": branch,
        "sourceControlSystem": source_control_system,
        "sourceControlPath": source_control_path,
        "sourceControlBaseRevision": source_control_base_revision,
        "lintStatus": lint_status,
        "unitStatus": unit_status,
        "bookmark": bookmark,
        "parentRevisionID": parent_revision_id,
        "creationMethod": creation_method,
        "authorPHID": author_phid,
        "arcanistProject": arcanist_project,
        "repositoryUUID": repository_uuid,
    }
    d = phlsys_dictutil.copy_dict_no_nones(d)
    response = conduit.call("differential.creatediff", d)
    return response