[V3 DataConverter] Fix past nicks conversion for mod (#1840)

* 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
This commit is contained in:
Will
2018-06-09 20:27:06 -04:00
committed by GitHub
parent a070dffb93
commit 470521f7c8
8 changed files with 104 additions and 30 deletions

View File

@@ -0,0 +1,39 @@
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