Example #1
0
def test_get_commit_authors_error_handling_missing_response() -> None:
    """
    We should handle parsing errors without raising an exception.
    """
    pull_request_data = {"commitHistory": None}
    res = get_commit_authors(pr=pull_request_data)
    assert res == []
Example #2
0
def test_get_commit_authors_error_handling() -> None:
    """
    We should handle parsing errors without raising an exception.
    """
    pull_request_data = {
        "commitHistory": {
            "nodes": [
                {"commit": {"author": {"user": {}}}},
                {"commit": {"author": {}}},
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": None,
                                "databaseId": 435453,
                                "login": "******",
                                "type": "Bot",
                            }
                        }
                    }
                },
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": "Christopher Dignam",
                                "databaseId": 1929960,
                                "login": "******",
                                "type": "User",
                            }
                        }
                    }
                },
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": None,
                                "databaseId": None,
                                "login": "******",
                                "type": "SomeGitActor",
                            }
                        }
                    }
                },
            ]
        }
    }
    res = get_commit_authors(pr=pull_request_data)
    assert res == [
        CommitAuthor(name=None, databaseId=435453, login="******", type="Bot"),
        CommitAuthor(
            name="Christopher Dignam", databaseId=1929960, login="******", type="User"
        ),
        CommitAuthor(name=None, databaseId=None, login="******", type="SomeGitActor"),
    ]
Example #3
0
def test_get_commit_authors() -> None:
    """
    Verify we parse commit authors correctly. We should handle the nullability
    of name and databaseId.
    """
    pull_request_data = {
        "commitHistory": {
            "nodes": [
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": "Christopher Dignam",
                                "databaseId": 1929960,
                                "login": "******",
                                "type": "User",
                            }
                        }
                    }
                },
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": "b-lowe",
                                "databaseId": 5345234,
                                "login": "******",
                                "type": "User",
                            }
                        }
                    }
                },
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": None,
                                "databaseId": 435453,
                                "login": "******",
                                "type": "Bot",
                            }
                        }
                    }
                },
                {"commit": {"author": {"user": None}}},
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": "Christopher Dignam",
                                "databaseId": 1929960,
                                "login": "******",
                                "type": "User",
                            }
                        }
                    }
                },
                {
                    "commit": {
                        "author": {
                            "user": {
                                "name": None,
                                "databaseId": None,
                                "login": "******",
                                "type": "SomeGitActor",
                            }
                        }
                    }
                },
            ]
        }
    }
    res = get_commit_authors(pr=pull_request_data)
    assert res == [
        CommitAuthor(
            name="Christopher Dignam", databaseId=1929960, login="******", type="User"
        ),
        CommitAuthor(name="b-lowe", databaseId=5345234, login="******", type="User"),
        CommitAuthor(name=None, databaseId=435453, login="******", type="Bot"),
        CommitAuthor(name=None, databaseId=None, login="******", type="SomeGitActor"),
    ]