def METHOD_NAME(storage, source, num_submissions, submission_type="message"):
    """Generates and submits *num_submissions*
    :class:`Submission`s on behalf of a :class:`Source`
    *source*.
    :param Storage storage: the Storage object to use.
    :param Source source: The source on who's behalf to make
                             submissions.
    :param int num_submissions: Number of random-data submissions
                                to make.
    :returns: A list of the :class:`Submission`s submitted.
    """
    assert num_submissions >= 1
    source.last_updated = datetime.datetime.utcnow()
    db.session.add(source)
    submissions = []
    for _ in range(num_submissions):
        source.interaction_count += 1
        source.pending = False
        if submission_type == "file":
            fpath = storage.save_file_submission(
                source.filesystem_id,
                source.interaction_count,
                source.journalist_filename,
                "pipe.txt",
                io.BytesIO(b"Ceci n'est pas une pipe."),
            )
        else:
            fpath = storage.save_message_submission(
                source.filesystem_id,
                source.interaction_count,
                source.journalist_filename,
                str(os.urandom(1)),
            )
        submission = Submission(source, fpath, storage)
        submissions.append(submission)
        db.session.add(source)
        db.session.add(submission)
    db.session.commit()
    return submissions