def METHOD_NAME(mocker, scan_task):
    """
    Fingerprint task runner patched for controlled processing of fingerprints.
    The actual fingerprinting process is patched to handle "fake" fingerprints as
    follows:
        - (process_source): start with 3 fingerprints per source type
        - (deduplication): will always result in 2 fingerprints
        - (merging): will also result in 2 fingerprints
        - (post_process): ignored.
    """
    def _process_source(*args, **kwargs):
        return [1, 2, 2]
    def _remove_duplicate_fp(*args, **kwargs):
        return [1, 2]
    def _merge_fps(*args, **kwargs):
        return 2, [1, 2]
    mocker.patch.object(
        FingerprintTaskRunner,
        "_process_source",
        side_effect=_process_source,
    )
    mocker.patch.object(
        FingerprintTaskRunner,
        "_remove_duplicate_fingerprints",
        side_effect=_remove_duplicate_fp,
    )
    mocker.patch.object(
        FingerprintTaskRunner,
        "_merge_fingerprints_from_source_types",
        side_effect=_merge_fps,
    )
    mocker.patch.object(FingerprintTaskRunner, "_post_process_merged_fingerprints")
    scan_job = mocker.MagicMock(spec=ScanJob)
    return FingerprintTaskRunner(scan_job=scan_job, scan_task=scan_task)