def test_build_list_request_with_incorrect_filter_keys() -> None: """It returns invalid request.""" request = build_list_request(filters={"a": 1}) assert request.has_errors() assert request.errors[0]["parameter"] == "filters" assert bool(request) is False
def test_build_list_request_with_invalid_filters_parameter() -> None: """It returns invalid request.""" request = build_list_request(filters=5) assert request.has_errors() assert request.errors[0]["parameter"] == "filters" assert bool(request) is False
def test_build_list_request_accepted_obj_values(value: str) -> None: """It returns valid request.""" filters = {"obj__eq": value} request = build_list_request(filters=filters) assert request.filters == filters assert bool(request) is True
def test_build_list_request_accepted_filters(key: str) -> None: """It returns valid request.""" filters = {key: "all"} request = build_list_request(filters=filters) assert request.filters == filters assert bool(request) is True
def test_build_list_request_rejected_obj_values(value: str) -> None: """It returns invalid request.""" filters = {"obj__eq": value} request = build_list_request(filters=filters) assert request.has_errors() assert request.errors[0]["parameter"] == "filters" assert bool(request) is False
def test_build_list_request_rejected_filters(key: str) -> None: """It returns invalid request.""" filters = {key: 1} request = build_list_request(filters=filters) assert request.has_errors() assert request.errors[0]["parameter"] == "filters" assert bool(request) is False
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
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", }
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", }
"""Test cases for the Github close issue use case.""" import pytest from pytest_mock import MockerFixture import git_portfolio.domain.config as c import git_portfolio.request_objects.issue_list as il import git_portfolio.responses as res import git_portfolio.use_cases.gh_close_issue as ghci REPO = "org/reponame" REPO2 = "org/reponame2" REQUEST_ISSUES = il.build_list_request(filters={ "state__eq": "open", "title__contains": "title" }) @pytest.fixture def mock_config_manager(mocker: MockerFixture) -> MockerFixture: """Fixture for mocking CONFIG_MANAGER.""" mock = mocker.patch("git_portfolio.config_manager.ConfigManager", autospec=True) mock.return_value.config = c.Config("", "mytoken", [REPO, REPO2]) return mock @pytest.fixture def mock_github_service(mocker: MockerFixture) -> MockerFixture: """Fixture for mocking GithubService.""" mock = mocker.patch("git_portfolio.github_service.GithubService", autospec=True)
def test_build_list_request_without_parameters() -> None: """It returns valid request with no filters.""" request = build_list_request() assert request.filters is None assert bool(request) is True
def test_build_list_request_with_empty_filters() -> None: """It returns valid request with no filters.""" request = build_list_request({}) assert request.filters == {} assert bool(request) is True