Commit 4623a862 authored by Jeremy Pallats's avatar Jeremy Pallats 💬
Browse files

Add tests for filter_top_dusers.

parent 6074ec50
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -1756,10 +1756,8 @@ def filter_top_dusers(guild, dusers, exclude_roles, limit=5):
            break

    while len(top_recruits) != limit:
        print(top_recruits)
        top_recruits += [('', '')]
    while len(top_members) != limit:
        print(top_members)
        top_members += [('', '')]

    return top_recruits, top_members
+60 −0
Original line number Diff line number Diff line
@@ -1362,3 +1362,63 @@ async def test_cmd_near_if(f_bot):

    actual = str(f_bot.send_message.call_args).replace("\\n", "\n")
    assert "LHS 397        | 19.32    | [L] Zillig Depot" in actual


def test_filter_top_dusers(session, f_dusers, f_fort_testbed, f_um_testbed):
    top_fort = cogdb.query.users_with_fort_merits(session)
    mapped = {
        1: tc.Member(top_fort[2][0].pref_name, roles=[tc.Role("FRC Recruit"), tc.Role("Something")]),
        2: tc.Member(top_fort[0][0].pref_name, roles=[tc.Role("FRC Member"), tc.Role("Something")]),
        3: tc.Member(top_fort[1][0].pref_name, roles=[tc.Role("FRC Recruit"), tc.Role("Something")]),
    }

    def get_member_(did):
        return mapped[did]

    guild = aiomock.Mock()
    guild.get_member = get_member_

    expected_rec = [
        ('User3', 1800),
        ('User1', 1100),
        ('', ''),
        ('', ''),
        ('', '')
    ]
    expected_mem = [
        ('User2', 2000),
        ('', ''),
        ('', ''),
        ('', ''),
        ('', '')
    ]
    rec, mem = cog.actions.filter_top_dusers(guild, top_fort, [])
    assert rec == expected_rec
    assert mem == expected_mem


def test_filter_top_dusers_exclude(session, f_dusers, f_fort_testbed, f_um_testbed):
    top_fort = cogdb.query.users_with_fort_merits(session)
    mapped = {
        1: tc.Member(top_fort[2][0].pref_name, roles=[tc.Role("FRC Recruit"), tc.Role("Filter")]),
        2: tc.Member(top_fort[0][0].pref_name, roles=[tc.Role("FRC Member"), tc.Role("Something")]),
        3: tc.Member(top_fort[1][0].pref_name, roles=[tc.Role("FRC Recruit"), tc.Role("Filter")]),
    }

    def get_member_(did):
        return mapped[did]

    guild = aiomock.Mock()
    guild.get_member = get_member_

    expected_rec = [
        ('', ''),
        ('', '')
    ]
    expected_mem = [
        ('User2', 2000),
        ('', ''),
    ]
    rec, mem = cog.actions.filter_top_dusers(guild, top_fort, ["Filter"], 2)
    assert rec == expected_rec
    assert mem == expected_mem