mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
Guard module-level creation of Config objects (#2449)
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
This commit is contained in:
parent
ac8b1fc108
commit
b1066ad58f
@ -13,7 +13,7 @@ from redbot.core.events import init_events
|
||||
from redbot.core.cli import interactive_config, confirm, parse_cli_flags
|
||||
from redbot.core.core_commands import Core
|
||||
from redbot.core.dev_commands import Dev
|
||||
from redbot.core import __version__
|
||||
from redbot.core import modlog, bank
|
||||
from signal import SIGTERM
|
||||
import asyncio
|
||||
import logging.handlers
|
||||
@ -139,6 +139,10 @@ def main():
|
||||
red.add_cog(CogManagerUI())
|
||||
if cli_flags.dev:
|
||||
red.add_cog(Dev())
|
||||
# noinspection PyProtectedMember
|
||||
modlog._init()
|
||||
# noinspection PyProtectedMember
|
||||
bank._init()
|
||||
loop = asyncio.get_event_loop()
|
||||
if os.name == "posix":
|
||||
loop.add_signal_handler(SIGTERM, lambda: asyncio.ensure_future(sigterm_handler(red, log)))
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import datetime
|
||||
import os
|
||||
from typing import Union, List, Optional
|
||||
|
||||
import discord
|
||||
@ -42,6 +41,17 @@ _DEFAULT_MEMBER = {"name": "", "balance": 0, "created_at": 0}
|
||||
|
||||
_DEFAULT_USER = _DEFAULT_MEMBER
|
||||
|
||||
_conf: Config = None
|
||||
|
||||
|
||||
def _init():
|
||||
global _conf
|
||||
_conf = Config.get_conf(None, 384734293238749, cog_name="Bank", force_registration=True)
|
||||
_conf.register_global(**_DEFAULT_GLOBAL)
|
||||
_conf.register_guild(**_DEFAULT_GUILD)
|
||||
_conf.register_member(**_DEFAULT_MEMBER)
|
||||
_conf.register_user(**_DEFAULT_USER)
|
||||
|
||||
|
||||
class Account:
|
||||
"""A single account.
|
||||
@ -54,18 +64,6 @@ class Account:
|
||||
self.created_at = created_at
|
||||
|
||||
|
||||
def _register_defaults():
|
||||
_conf.register_global(**_DEFAULT_GLOBAL)
|
||||
_conf.register_guild(**_DEFAULT_GUILD)
|
||||
_conf.register_member(**_DEFAULT_MEMBER)
|
||||
_conf.register_user(**_DEFAULT_USER)
|
||||
|
||||
|
||||
if not os.environ.get("BUILDING_DOCS"):
|
||||
_conf = Config.get_conf(None, 384734293238749, cog_name="Bank", force_registration=True)
|
||||
_register_defaults()
|
||||
|
||||
|
||||
def _encoded_current_time() -> int:
|
||||
"""Get the current UTC time as a timestamp.
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import os
|
||||
from datetime import datetime
|
||||
from typing import List, Union
|
||||
|
||||
@ -29,17 +28,16 @@ _DEFAULT_GLOBAL = {"casetypes": {}}
|
||||
|
||||
_DEFAULT_GUILD = {"mod_log": None, "cases": {}, "casetypes": {}}
|
||||
|
||||
_conf: Config = None
|
||||
|
||||
def _register_defaults():
|
||||
|
||||
def _init():
|
||||
global _conf
|
||||
_conf = Config.get_conf(None, 1354799444, cog_name="ModLog")
|
||||
_conf.register_global(**_DEFAULT_GLOBAL)
|
||||
_conf.register_guild(**_DEFAULT_GUILD)
|
||||
|
||||
|
||||
if not os.environ.get("BUILDING_DOCS"):
|
||||
_conf = Config.get_conf(None, 1354799444, cog_name="ModLog")
|
||||
_register_defaults()
|
||||
|
||||
|
||||
class Case:
|
||||
"""A single mod log case"""
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import pytest
|
||||
from redbot.core import bank as bank_module
|
||||
|
||||
__all__ = ["bank"]
|
||||
|
||||
@ -9,7 +10,6 @@ def bank(config, monkeypatch):
|
||||
|
||||
with monkeypatch.context() as m:
|
||||
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
||||
from redbot.core import bank
|
||||
|
||||
bank._register_defaults()
|
||||
return bank
|
||||
# noinspection PyProtectedMember
|
||||
bank_module._init()
|
||||
return bank_module
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import pytest
|
||||
from redbot.core import modlog
|
||||
|
||||
__all__ = ["mod"]
|
||||
|
||||
@ -9,7 +10,6 @@ def mod(config, monkeypatch):
|
||||
|
||||
with monkeypatch.context() as m:
|
||||
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
||||
from redbot.core import modlog
|
||||
|
||||
modlog._register_defaults()
|
||||
modlog._init()
|
||||
return modlog
|
||||
|
||||
@ -4,7 +4,7 @@ from redbot.pytest.mod import *
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_modlog_register_casetype(mod, ctx):
|
||||
async def test_modlog_register_casetype(mod):
|
||||
ct = {
|
||||
"name": "ban",
|
||||
"default_setting": True,
|
||||
@ -20,6 +20,9 @@ async def test_modlog_register_casetype(mod, ctx):
|
||||
async def test_modlog_case_create(mod, ctx, member_factory):
|
||||
from datetime import datetime as dt
|
||||
|
||||
# Run casetype register test to register casetype in this test too
|
||||
await test_modlog_register_casetype(mod)
|
||||
|
||||
usr = member_factory.get()
|
||||
guild = ctx.guild
|
||||
bot = ctx.bot
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user