mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
[V3 Config] Fix async context manager bug and add test (#1308)
* Fix config bug and add test * Fix the full bug * Extra safeness
This commit is contained in:
parent
11636b16d2
commit
6678b29396
@ -171,7 +171,7 @@ class Group(Value):
|
||||
|
||||
@property
|
||||
def defaults(self):
|
||||
return self._defaults.copy()
|
||||
return deepcopy(self._defaults)
|
||||
|
||||
# noinspection PyTypeChecker
|
||||
def __getattr__(self, item: str) -> Union["Group", Value]:
|
||||
@ -428,7 +428,7 @@ class Config:
|
||||
|
||||
@property
|
||||
def defaults(self):
|
||||
return self._defaults.copy()
|
||||
return deepcopy(self._defaults)
|
||||
|
||||
@classmethod
|
||||
def get_conf(cls, cog_instance, identifier: int,
|
||||
@ -669,7 +669,7 @@ class Config:
|
||||
# noinspection PyTypeChecker
|
||||
return Group(
|
||||
identifiers=(self.unique_identifier, key) + identifiers,
|
||||
defaults=self._defaults.get(key, {}),
|
||||
defaults=self.defaults.get(key, {}),
|
||||
spawner=self.spawner,
|
||||
force_registration=self.force_registration
|
||||
)
|
||||
|
||||
@ -376,3 +376,15 @@ async def test_value_ctxmgr_immutable(config):
|
||||
|
||||
foo = await config.foo()
|
||||
assert foo is True
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_ctxmgr_no_shared_default(config, member_factory):
|
||||
config.register_member(foo=[])
|
||||
m1 = member_factory.get()
|
||||
m2 = member_factory.get()
|
||||
|
||||
async with config.member(m1).foo() as foo:
|
||||
foo.append(1)
|
||||
|
||||
assert 1 not in await config.member(m2).foo()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user