Exemplo n.º 1
0
 def execute(
     self,
     request_object: Union[il.IssueListValidRequest,
                           il.IssueListInvalidRequest],
     github_repo: str = "",
 ) -> Union[res.ResponseFailure, res.ResponseSuccess]:
     """Close issues."""
     output = ""
     if github_repo:
         response = li.GhListIssueUseCase(self.config_manager,
                                          self.github_service).execute(
                                              request_object, github_repo)
         if isinstance(response, res.ResponseSuccess):
             output = self.call_github_service("close_issues_from_repo",
                                               output, github_repo,
                                               response.value)
         else:
             output = f"{github_repo}: no issues closed.\n"
     else:
         for github_repo in self.config_manager.config.github_selected_repos:
             response = li.GhListIssueUseCase(self.config_manager,
                                              self.github_service).execute(
                                                  request_object,
                                                  github_repo)
             if isinstance(response, res.ResponseSuccess):
                 output = self.call_github_service("close_issues_from_repo",
                                                   output, github_repo,
                                                   response.value)
             else:
                 output += f"{github_repo}: no issues closed.\n"
     return res.ResponseSuccess(output)
Exemplo n.º 2
0
 def execute(
     self,
     pr: pr.PullRequest,
     request_object: Union[il.IssueListValidRequest,
                           il.IssueListInvalidRequest],
     github_repo: str = "",
 ) -> Union[res.ResponseFailure, res.ResponseSuccess]:
     """Create pull requests."""
     output = ""
     if github_repo:
         if pr.link_issues:
             response = li.GhListIssueUseCase(self.config_manager,
                                              self.github_service).execute(
                                                  request_object,
                                                  github_repo)
             if isinstance(response, res.ResponseSuccess):
                 custom_pr = self.github_service.link_issues(
                     pr, response.value)
             else:
                 custom_pr = pr
         output = self.call_github_service("create_pull_request_from_repo",
                                           output, github_repo, pr)
     else:
         if pr.link_issues:
             for github_repo in self.config_manager.config.github_selected_repos:
                 response = li.GhListIssueUseCase(
                     self.config_manager,
                     self.github_service).execute(request_object,
                                                  github_repo)
                 if isinstance(response, res.ResponseSuccess):
                     custom_pr = self.github_service.link_issues(
                         pr, response.value)
                 else:
                     custom_pr = pr
                 output = self.call_github_service(
                     "create_pull_request_from_repo", output, github_repo,
                     custom_pr)
         else:
             for github_repo in self.config_manager.config.github_selected_repos:
                 output = self.call_github_service(
                     "create_pull_request_from_repo", output, github_repo,
                     pr)
     return self.generate_response(output)
Exemplo n.º 3
0
def test_execute_without_parameters(
    mocker: MockerFixture,
    mock_config_manager: MockerFixture,
    mock_github_service: MockerFixture,
    domain_issues: List[i.Issue],
) -> None:
    """It returns a list of issues."""
    repo = mocker.Mock()
    config_manager = mock_config_manager.return_value
    github_service = mock_github_service.return_value
    github_service.list_issues_from_repo.return_value = domain_issues

    request = il.build_list_request()

    response = li.GhListIssueUseCase(config_manager,
                                     github_service).execute(request, repo)

    assert bool(response) is True
    assert response.value == domain_issues
Exemplo n.º 4
0
def test_execute_handles_bad_request(
    mocker: MockerFixture,
    mock_config_manager: MockerFixture,
    mock_github_service: MockerFixture,
) -> None:
    """It returns a parameters error."""
    repo = mocker.Mock()
    config_manager = mock_config_manager.return_value
    github_service = mock_github_service.return_value

    request = il.build_list_request(filters=5)  # type: ignore

    response = li.GhListIssueUseCase(config_manager,
                                     github_service).execute(request, repo)

    assert bool(response) is False
    assert response.value == {
        "type": res.ResponseTypes.PARAMETERS_ERROR,
        "message": "filters: Is not iterable",
    }
Exemplo n.º 5
0
def test_execute_handles_generic_error(
    mocker: MockerFixture,
    mock_config_manager: MockerFixture,
    mock_github_service: MockerFixture,
) -> None:
    """It returns a system error."""
    repo = mocker.Mock()
    config_manager = mock_config_manager.return_value
    github_service = mock_github_service.return_value
    github_service.list_issues_from_repo.side_effect = Exception(
        "Just an error message")

    request = il.build_list_request(filters={})

    response = li.GhListIssueUseCase(config_manager,
                                     github_service).execute(request, repo)

    assert bool(response) is False
    assert response.value == {
        "type": res.ResponseTypes.SYSTEM_ERROR,
        "message": "Exception: Just an error message",
    }