[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)
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

View File

@ -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()