def test_get_issue(mock_login):
    mock_issue = IssueFactory()
    mock_login.return_value \
        .repository.return_value \
        .issue.return_value = \
        mock_issue
    repo = GithubRepository('test/test')
    issue = repo.get_issue(23)

    assert isinstance(issue, Issue)
    assert mock_issue.title == issue.name
    assert mock_issue.body == issue.message
    assert mock_issue.number == issue.number
    for mock_c, comment in zip(mock_issue.iter_comments(), issue.comments):
        assert isinstance(comment, Comment)
        assert mock_c.user.name == comment.author.name
        assert mock_c.body == comment.message
def test_get_issues(mock_login):
    mock_issues = IssueFactory.create_batch(3)
    mock_login.return_value \
        .repository.return_value \
        .iter_issues.return_value = \
        mock_issues
    repo = GithubRepository('test/test')
    issues = repo.get_issues()
    assert len(mock_issues) == len(issues)
    for mock_i, i in zip(mock_issues, issues):
        assert isinstance(i, Issue)
        assert mock_i.title == i.name
        assert mock_i.body == i.message
        assert mock_i.number == i.number
        for mock_comment, comment in zip(mock_i.iter_comments(), i.comments):
            assert isinstance(comment, Comment)
            assert mock_comment.user.name == comment.author.name
            assert mock_comment.body == comment.message