mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
[Config] Fix 'all' handling to match docs (#889)
* Fix some stuff to match docs * For Palm__ <3
This commit is contained in:
parent
4923ffe98a
commit
d4da9edb3e
@ -118,17 +118,29 @@ class Group(Value):
|
||||
|
||||
return not isinstance(default, dict)
|
||||
|
||||
def get_attr(self, item: str, default=None):
|
||||
def get_attr(self, item: str, default=None, resolve=True):
|
||||
"""
|
||||
You should avoid this function whenever possible.
|
||||
:param item:
|
||||
:param default:
|
||||
:param resolve:
|
||||
If this is True, actual data will be returned, if false a Group/Value will be returned.
|
||||
:return:
|
||||
"""
|
||||
value = getattr(self, item)
|
||||
if resolve:
|
||||
return value(default=default)
|
||||
else:
|
||||
return value
|
||||
|
||||
def all(self) -> dict:
|
||||
"""
|
||||
Gets all data from current User/Member/Guild etc.
|
||||
:return:
|
||||
"""
|
||||
return self()
|
||||
|
||||
def all_from_kind(self) -> dict:
|
||||
"""
|
||||
Gets all entries of the given kind. If this kind is member
|
||||
then this method returns all members from the same
|
||||
|
||||
@ -278,12 +278,20 @@ async def test_member_clear_all(config, member_factory):
|
||||
|
||||
# Get All testing
|
||||
@pytest.mark.asyncio
|
||||
async def test_user_get_all(config, user_factory):
|
||||
async def test_user_get_all_from_kind(config, user_factory):
|
||||
for _ in range(5):
|
||||
user = user_factory.get()
|
||||
await config.user(user).foo.set(True)
|
||||
|
||||
user = user_factory.get()
|
||||
all_data = config.user(user).all()
|
||||
all_data = config.user(user).all_from_kind()
|
||||
|
||||
assert len(all_data) == 5
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_user_getalldata(config, user_factory):
|
||||
user = user_factory.get()
|
||||
await config.user(user).foo.set(False)
|
||||
|
||||
assert "foo" in config.user(user).all()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user