Skip to content

Commit

Permalink
[REF] refactor to improve _set_lines_issue coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
legalsylvain committed Jul 2, 2022
1 parent 8e707c6 commit f83caab
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 12 deletions.
14 changes: 8 additions & 6 deletions src/oca_github_bot/tasks/migration_issue_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ def _find_issue(gh_repo, milestone, target_branch):
return issue


def _set_lines_issue(gh_pr, issue, module):
def _set_lines_issue(gh_pr_user_login, gh_pr_number, issue_body, module):
lines = []
added = False
module_list = False
new_line = f"- [ ] {module} - By @{gh_pr.user.login} - #{gh_pr.number}"
for line in issue.body.split("\n"):
new_line = f"- [ ] {module} - By @{gh_pr_user_login} - #{gh_pr_number}"
for line in issue_body.split("\n"):
if added: # Bypass the checks for faster completion
lines.append(line)
continue
Expand Down Expand Up @@ -62,7 +62,7 @@ def _set_lines_issue(gh_pr, issue, module):
# make the addition working on an empty migration issue
if not added:
lines.append(new_line)
return lines
return "\n".join(lines)


@task()
Expand Down Expand Up @@ -113,8 +113,10 @@ def migration_issue_start(org, repo, pr, username, module=None, dry_run=False):
)
return
# Change issue to add the PR in the module list
lines = _set_lines_issue(gh_pr, issue, module)
issue.edit(body="\n".join(lines))
new_body = _set_lines_issue(
gh_pr.user.login, gh_pr.number, issue.body, module
)
issue.edit(body=new_body)
except Exception as e:
github.gh_call(
gh_pr.create_comment,
Expand Down
37 changes: 31 additions & 6 deletions tests/test_migration_issue_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,34 @@ def test_find_issue(gh):

@pytest.mark.vcr()
def test_set_lines_issue(gh):
repo = _get_repository(gh, "OCA", "contract")
milestone = _create_or_find_branch_milestone(repo, "14.0")
issue = _find_issue(repo, milestone, "14.0")
gh_pr = gh.pull_request("OCA", "contract", 705)
lines = _set_lines_issue(gh_pr, issue, "contract")
assert len(lines) > 0
module = "mis_builder"
gh_pr_user_login = "sbidoul"
gh_pr_number = 11

body_transformation = [
(
"Issue with list but not the module\n"
"- [ ] a_module_1 - By @legalsylvain - #1\n"
"- [ ] z_module_1 - By @pedrobaeza - #2",
f"Issue with list but not the module\n"
f"- [ ] a_module_1 - By @legalsylvain - #1\n"
f"- [ ] {module} - By @{gh_pr_user_login} - #{gh_pr_number}\n"
f"- [ ] z_module_1 - By @pedrobaeza - #2",
),
(
f"Issue with list containing the module\n"
f"- [x] {module} - By @legalsylvain - #1\n"
f"- [ ] z_module_1 - By @pedrobaeza - #2",
f"Issue with list containing the module\n"
f"- [x] {module} - By @{gh_pr_user_login} - #{gh_pr_number}\n"
f"- [ ] z_module_1 - By @pedrobaeza - #2",
),
(
"Issue with no list",
f"Issue with no list\n"
f"- [ ] {module} - By @{gh_pr_user_login} - #{gh_pr_number}",
),
]
for (old_body, new_body_expected) in body_transformation:
new_body = _set_lines_issue(gh_pr_user_login, gh_pr_number, old_body, module)
assert new_body == new_body_expected

0 comments on commit f83caab

Please sign in to comment.