def domain_issues() -> List[i.Issue]: """Issues fixture.""" issue_1 = i.Issue( 0, "my title", "my body", {"testing", "refactor"}, ) issue_2 = i.Issue( 1, "my title 2", "my body2", set(), ) return [issue_1, issue_2]
def create_issues(github_selected_repos: List[str]) -> i.Issue: """Prompt questions to create issues.""" questions = [ inquirer.Text( "title", message="Write an issue title", validate=val.not_empty_validation, ), inquirer.Text("body", message="Write an issue body [optional]"), inquirer.Text( "labels", message="Write issue labels [optional, separated by comma]" ), inquirer.Confirm( "correct", message=( "Confirm creation of issue for the project(s) " f"{github_selected_repos}. Continue?" ), default=False, ), ] correct = False while not correct: answers = inquirer.prompt(questions) correct = answers["correct"] labels = ( set(label.strip() for label in answers["labels"].split(",")) if answers["labels"] else set() ) return i.Issue(answers["title"], answers["body"], labels)
def domain_issues() -> List[i.Issue]: """Issues fixture.""" issues = [ i.Issue( 0, "my issue title", "my issue body", {"testing", "refactor"}, ), i.Issue(2, "also doesnt match title", "body2", set()), i.Issue(4, "doesnt match title", "body4", {"dontinherit"}), i.Issue(3, "issue title", "body3", set()), i.Issue(5, "pr match issue title", "body5", {"enhancement", "testing"}), ] return issues
def domain_issue() -> i.Issue: """Issue fixture.""" issue = i.Issue( "my title", "my body", {"testing", "refactor"}, ) return issue
def test_issue_model_init() -> None: """Verify model initialization.""" title = "issue title" body = "body description" labels = {"testing"} test_issue = i.Issue(title, body, labels) assert test_issue.title == title assert test_issue.body == body assert test_issue.labels == labels
def test_create_issues_no_labels(mock_inquirer_prompt: MockerFixture) -> None: """It returns issue.""" mock_inquirer_prompt.return_value = { "title": "my title", "labels": "", "body": "my body", "correct": True, } result = p.InquirerPrompter.create_issues(["staticdev/omg"]) expected = i.Issue("my title", "my body", set()) assert result == expected
def test_create_issues(mock_inquirer_prompt: MockerFixture) -> None: """It returns issue.""" mock_inquirer_prompt.return_value = { "title": "my title", "labels": "testing,refactor", "body": "my body", "correct": True, } result = p.InquirerPrompter.create_issues([REPO]) expected = i.Issue(0, "my title", "my body", {"testing", "refactor"}) assert result == expected
def list_issues_from_repo( self, github_repo: str, request: Union[il.IssueListValidRequest, il.IssueListInvalidRequest], ) -> List[i.Issue]: """Return list of issues from one repository.""" if isinstance(request, il.IssueListValidRequest): repo = self._get_repo(github_repo) domain_issues = [] if not request.filters: issues = list(repo.issues()) for issue in issues: labels = set(label.name for label in issue.labels()) domain_issues.append( i.Issue(issue.number, issue.title, issue.body, labels) ) return issues obj = request.filters.get("obj__eq") state = request.filters.get("state__eq") title_query = request.filters.get("title__contains") issues = list(repo.issues(state=state)) if obj == "issue": issues = [issue for issue in issues if issue.pull_request_urls is None] elif obj == "pull request": issues = [issue for issue in issues if issue.pull_request_urls] if title_query: issues = [issue for issue in issues if title_query in issue.title] for issue in issues: labels = set(label.name for label in issue.labels()) domain_issues.append( i.Issue(issue.number, issue.title, issue.body, labels) ) return domain_issues return []