def METHOD_NAME(db_session, client_hex, user_rincewind) -> None:
    """`AuthCode` can't have null scope but can have empty scope."""
    # Scope can't be None or empty
    with pytest.raises(ValueError, match='Scope cannot be None'):
        models.AuthCode(
            auth_client=client_hex,
            account=user_rincewind,
            redirect_uri='http://localhost/',
            scope=None,
        )
    # Empty scope is fine
    auth_code = models.AuthCode(
        auth_client=client_hex,
        account=user_rincewind,
        redirect_uri='http://localhost/',
        scope='',
    )
    assert auth_code.scope == ()
    assert auth_code._scope == ''
    auth_code = models.AuthCode(
        auth_client=client_hex,
        account=user_rincewind,
        redirect_uri='http://localhost/',
        scope=[],
    )
    assert auth_code.scope == ()
    assert auth_code._scope == ''
    # Committing with default None causes IntegrityError
    db_session.add(
        models.AuthCode(
            auth_client=client_hex,
            account=user_rincewind,
            redirect_uri='http://localhost/',
        )
    )
    # Raise IntegrityError on scope=None
    with pytest.raises(IntegrityError):
        db_session.commit()