Unlike all other Snowflake operators, S3ToSnowflakeTransfer requires the usage of schema instead of letting it be an optional variable that when passed would be used, and if not, then connection metadata is used. 

I can be assigned on this if needed. Keeping this up here so this doesn't go unnoticed. 
tests/providers/snowflake/transfers/test_s3_to_snowflake.py
schema = 'schema'
        S3ToSnowflakeOperator(
            s3_keys=s3_keys,
            table=table,
            stage=stage,
            prefix=prefix,
            file_format=file_format,
            schema=schema,
            columns_array=columns_array,
            task_id="task_id",
            dag=None,
        ).execute(None)
        files = None
        if s3_keys:
            files = "files=({})".format(", ".join(f"'{key}'" for key in s3_keys))
        base_sql = f"""
                FROM @{stage}/{prefix if prefix else ''}
                {files if files else ''}
                file_format={file_format}
            """
        columns = None
        if columns_array:
            columns = f"({','.join(columns_array)})"
        copy_query = f"""
                COPY INTO {schema}.{table}{columns if columns else ''} {base_sql}
            """
        copy_query = "\n".join(line.strip() for line in copy_query.splitlines())
        mock_run.assert_called_once()
        assert mock_run.call_args[0][0] == copy_query