def test_is_pull_request_merged(self, gh_api): self.init_github() merged_pull_request = ShortPullRequest( self._get_expected_pull_request(1, 1), gh_api) merged_pull_request.merged_at = "DateTimeStr" unmerged_pull_request = ShortPullRequest( self._get_expected_pull_request(1, 1), gh_api) unmerged_pull_request.merged_at = None assert is_pull_request_merged(merged_pull_request) assert not is_pull_request_merged(unmerged_pull_request)
def aggregate_child_change_notes(self, pull_request): """Given a pull request, aggregate all change notes from child pull requests. Child pull requests are pull requests that have a base branch equal to the the given pull request's head.""" self.change_notes = get_pull_requests_with_base_branch( self.repo, pull_request.head.ref, state="all") self.change_notes = [ note for note in self.change_notes if is_pull_request_merged(note) and note.head.ref != self.repo.default_branch ] if len(self.change_notes) == 0: return for change_note in self.change_notes: self._parse_change_note(change_note) body = [] for parser in self.parsers: if parser.title is None: parser.title = "Notes From Child PRs" parser_content = parser.render() if parser_content: body.append(parser_content) if self.empty_change_notes: body.extend(render_empty_pr_section(self.empty_change_notes)) new_body = "\r\n".join(body) if not pull_request.update(body=new_body): raise CumulusCIException( "Update of pull request #{} failed.".format( pull_request.number))