Skip to content

Commit d181101

Browse files
RoachDon Goodman-Wilson
authored andcommitted
Fixed the ability to search for a user by ID (#152)
* Fixed the ability to search for a user by ID * Added test for invalid user search
1 parent 05e4bd8 commit d181101

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

slackclient/_util.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ def find(self, name):
1818

1919

2020
class SearchDict(dict):
21-
22-
def find(self, name):
23-
return self.get(name)
21+
def find(self, search_string):
22+
# Find the user by name
23+
user = self.get(search_string)
24+
if user:
25+
return user
26+
else:
27+
# If the user can't be found by name, try searching by ID
28+
for name, user in self.items():
29+
if str(user.id) == search_string:
30+
return user

tests/test_server.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,18 @@ def test_Server_parse_channel_data(server, login_fixture):
2929

3030
def test_Server_parse_user_data(server, login_fixture):
3131
server.parse_user_data(login_fixture["users"])
32-
fakeuser = server.users.find('fakeuser')
33-
assert type(fakeuser) == User
34-
assert fakeuser == "fakeuser"
35-
assert fakeuser != "someotheruser"
32+
# Find user by Name
33+
userbyname = server.users.find('fakeuser')
34+
assert type(userbyname) == User
35+
assert userbyname == "fakeuser"
36+
assert userbyname != "someotheruser"
37+
# Find user by ID
38+
userbyid = server.users.find('U10CX1234')
39+
assert type(userbyid) == User
40+
assert userbyid == "fakeuser"
41+
# Don't find invalid user
42+
userbyid = server.users.find('invaliduser')
43+
assert type(userbyid) != User
3644

3745

3846
def test_Server_cantconnect(server):

0 commit comments

Comments
 (0)