mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
* Add custom trivia list schema validation and test * Address review * Improve error formatting in trivia list test Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
28 lines
799 B
Python
28 lines
799 B
Python
import textwrap
|
|
|
|
import yaml
|
|
from schema import SchemaError
|
|
|
|
|
|
def test_trivia_lists():
|
|
from redbot.cogs.trivia import InvalidListError, get_core_lists, get_list
|
|
|
|
list_names = get_core_lists()
|
|
assert list_names
|
|
problem_lists = []
|
|
for l in list_names:
|
|
try:
|
|
get_list(l)
|
|
except InvalidListError as exc:
|
|
e = exc.__cause__
|
|
if isinstance(e, SchemaError):
|
|
problem_lists.append((l.stem, f"SCHEMA error:\n{e!s}"))
|
|
else:
|
|
problem_lists.append((l.stem, f"YAML error:\n{e!s}"))
|
|
|
|
if problem_lists:
|
|
msg = ""
|
|
for name, error in problem_lists:
|
|
msg += f"- {name}:\n{textwrap.indent(error, ' ')}"
|
|
raise TypeError("The following lists contain errors:\n" + msg)
|