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.cli import interactive_config, confirm, parse_cli_flags
|
||||||
from redbot.core.core_commands import Core
|
from redbot.core.core_commands import Core
|
||||||
from redbot.core.dev_commands import Dev
|
from redbot.core.dev_commands import Dev
|
||||||
from redbot.core import __version__
|
from redbot.core import modlog, bank
|
||||||
from signal import SIGTERM
|
from signal import SIGTERM
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging.handlers
|
import logging.handlers
|
||||||
@ -139,6 +139,10 @@ def main():
|
|||||||
red.add_cog(CogManagerUI())
|
red.add_cog(CogManagerUI())
|
||||||
if cli_flags.dev:
|
if cli_flags.dev:
|
||||||
red.add_cog(Dev())
|
red.add_cog(Dev())
|
||||||
|
# noinspection PyProtectedMember
|
||||||
|
modlog._init()
|
||||||
|
# noinspection PyProtectedMember
|
||||||
|
bank._init()
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
if os.name == "posix":
|
if os.name == "posix":
|
||||||
loop.add_signal_handler(SIGTERM, lambda: asyncio.ensure_future(sigterm_handler(red, log)))
|
loop.add_signal_handler(SIGTERM, lambda: asyncio.ensure_future(sigterm_handler(red, log)))
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import os
|
|
||||||
from typing import Union, List, Optional
|
from typing import Union, List, Optional
|
||||||
|
|
||||||
import discord
|
import discord
|
||||||
@ -42,6 +41,17 @@ _DEFAULT_MEMBER = {"name": "", "balance": 0, "created_at": 0}
|
|||||||
|
|
||||||
_DEFAULT_USER = _DEFAULT_MEMBER
|
_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:
|
class Account:
|
||||||
"""A single account.
|
"""A single account.
|
||||||
@ -54,18 +64,6 @@ class Account:
|
|||||||
self.created_at = created_at
|
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:
|
def _encoded_current_time() -> int:
|
||||||
"""Get the current UTC time as a timestamp.
|
"""Get the current UTC time as a timestamp.
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import os
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
|
|
||||||
@ -29,17 +28,16 @@ _DEFAULT_GLOBAL = {"casetypes": {}}
|
|||||||
|
|
||||||
_DEFAULT_GUILD = {"mod_log": None, "cases": {}, "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_global(**_DEFAULT_GLOBAL)
|
||||||
_conf.register_guild(**_DEFAULT_GUILD)
|
_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:
|
class Case:
|
||||||
"""A single mod log case"""
|
"""A single mod log case"""
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
from redbot.core import bank as bank_module
|
||||||
|
|
||||||
__all__ = ["bank"]
|
__all__ = ["bank"]
|
||||||
|
|
||||||
@ -9,7 +10,6 @@ def bank(config, monkeypatch):
|
|||||||
|
|
||||||
with monkeypatch.context() as m:
|
with monkeypatch.context() as m:
|
||||||
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
||||||
from redbot.core import bank
|
# noinspection PyProtectedMember
|
||||||
|
bank_module._init()
|
||||||
bank._register_defaults()
|
return bank_module
|
||||||
return bank
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
from redbot.core import modlog
|
||||||
|
|
||||||
__all__ = ["mod"]
|
__all__ = ["mod"]
|
||||||
|
|
||||||
@ -9,7 +10,6 @@ def mod(config, monkeypatch):
|
|||||||
|
|
||||||
with monkeypatch.context() as m:
|
with monkeypatch.context() as m:
|
||||||
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
m.setattr(Config, "get_conf", lambda *args, **kwargs: config)
|
||||||
from redbot.core import modlog
|
|
||||||
|
|
||||||
modlog._register_defaults()
|
modlog._init()
|
||||||
return modlog
|
return modlog
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from redbot.pytest.mod import *
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_modlog_register_casetype(mod, ctx):
|
async def test_modlog_register_casetype(mod):
|
||||||
ct = {
|
ct = {
|
||||||
"name": "ban",
|
"name": "ban",
|
||||||
"default_setting": True,
|
"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):
|
async def test_modlog_case_create(mod, ctx, member_factory):
|
||||||
from datetime import datetime as dt
|
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()
|
usr = member_factory.get()
|
||||||
guild = ctx.guild
|
guild = ctx.guild
|
||||||
bot = ctx.bot
|
bot = ctx.bot
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user