[Config] Fix 'all' handling to match docs (#889)

* Fix some stuff to match docs

* For Palm__ <3
This commit is contained in:
Will 2017-08-09 21:39:19 -04:00 committed by GitHub
parent 4923ffe98a
commit d4da9edb3e
2 changed files with 24 additions and 4 deletions

View File

@ -118,17 +118,29 @@ class Group(Value):
return not isinstance(default, dict) 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. You should avoid this function whenever possible.
:param item: :param item:
:param default: :param default:
:param resolve:
If this is True, actual data will be returned, if false a Group/Value will be returned.
:return: :return:
""" """
value = getattr(self, item) value = getattr(self, item)
if resolve:
return value(default=default) return value(default=default)
else:
return value
def all(self) -> dict: 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 Gets all entries of the given kind. If this kind is member
then this method returns all members from the same then this method returns all members from the same

View File

@ -278,12 +278,20 @@ async def test_member_clear_all(config, member_factory):
# Get All testing # Get All testing
@pytest.mark.asyncio @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): for _ in range(5):
user = user_factory.get() user = user_factory.get()
await config.user(user).foo.set(True) await config.user(user).foo.set(True)
user = user_factory.get() user = user_factory.get()
all_data = config.user(user).all() all_data = config.user(user).all_from_kind()
assert len(all_data) == 5 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()