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 _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