def METHOD_NAME(self):
    """ Check accounts with roles we exclude from delete are retained despite no journals or applications """
    EXCLUDED_LIST = ['associate_editor', 'editor', 'admin', 'ultra_bulk_delete', 'jct_inprogress']
    sources = [
        AccountFixtureFactory.make_managing_editor_source(),
        AccountFixtureFactory.make_assed1_source(),
        AccountFixtureFactory.make_assed2_source(),
        AccountFixtureFactory.make_assed3_source(),
        AccountFixtureFactory.make_editor_source(),
    ]
    account_blocklist = []
    for s in sources:
        account = models.Account(**s)
        account.set_id()
        account.save()
        account_blocklist.append((account.id, account.last_updated))
    # Add a few publishers we expect to be deleted
    publishers = []
    for s2 in range(len(EXCLUDED_LIST)):
        pub_source = AccountFixtureFactory.make_publisher_source()
        pub = models.Account(**pub_source)
        pub.set_id()
        publishers.append(pub)
        pub.save()
        account_blocklist.append((pub.id, pub.last_updated))
    models.Account.blockall(account_blocklist)
    # Check we get the publishers back when we run the script
    ids_to_delete = accounts_with_no_journals_or_applications()
    assert sorted(ids_to_delete) == sorted([p.id for p in publishers])
    # Add a reserved role to each publisher so they won't be returned next time
    for i in range(0, len(publishers)):
        publisher = publishers[i]
        publisher.add_role(EXCLUDED_LIST[i])
        publisher.save(blocking=True)
    ids_to_delete = accounts_with_no_journals_or_applications()
    assert len(ids_to_delete) == 0