mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-07 03:38:53 -05:00
* Fix existing tests permanently modifying attributes * Add dataconverter tests file * Fix past nicks spec converter * Update gitignore for dataconverter data files * Add data file for dataconverter test * Simplify fix
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import pytest
|
|
from pathlib import Path
|
|
from collections import namedtuple
|
|
|
|
from redbot.cogs.dataconverter import core_specs
|
|
from redbot.core.utils.data_converter import DataConverter
|
|
|
|
|
|
def mock_dpy_object(id_):
|
|
return namedtuple("DPYObject", "id")(int(id_))
|
|
|
|
|
|
def mock_dpy_member(guildid, userid):
|
|
return namedtuple("Member", "id guild")(int(userid), mock_dpy_object(guildid))
|
|
|
|
|
|
@pytest.fixture()
|
|
def specresolver():
|
|
here = Path(__file__)
|
|
|
|
resolver = core_specs.SpecResolver(here.parent)
|
|
return resolver
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_mod_nicknames(red, specresolver: core_specs.SpecResolver):
|
|
filepath, converter, cogname, attr, _id = specresolver.get_conversion_info("Past Nicknames")
|
|
conf = specresolver.get_config_object(red, cogname, attr, _id)
|
|
|
|
v2data = DataConverter.json_load(filepath)
|
|
|
|
await specresolver.convert(red, "Past Nicknames", config=conf)
|
|
|
|
for guildid, guild_data in v2data.items():
|
|
guild = mock_dpy_object(guildid)
|
|
for userid, user_data in guild_data.items():
|
|
member = mock_dpy_member(guildid, userid)
|
|
|
|
assert await conf.member(member).past_nicks() == user_data
|