From 335db468ba9adde26df83c0e058741abef6938d1 Mon Sep 17 00:00:00 2001 From: Jason Roche Date: Thu, 15 Dec 2016 14:53:15 -0800 Subject: [PATCH 1/2] Fixed the ability to search for a user by ID --- slackclient/_util.py | 13 ++++++++++--- tests/test_server.py | 13 +++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/slackclient/_util.py b/slackclient/_util.py index dc9c8a633..2428089f3 100644 --- a/slackclient/_util.py +++ b/slackclient/_util.py @@ -18,6 +18,13 @@ def find(self, name): class SearchDict(dict): - - def find(self, name): - return self.get(name) + def find(self, search_string): + # Find the user by name + user = self.get(search_string) + if user: + return user + else: + # If the user can't be found by name, try searching by ID + for name, user in self.items(): + if str(user.id) == search_string: + return user diff --git a/tests/test_server.py b/tests/test_server.py index 0394d4e9a..d60965224 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -29,10 +29,15 @@ def test_Server_parse_channel_data(server, login_fixture): def test_Server_parse_user_data(server, login_fixture): server.parse_user_data(login_fixture["users"]) - fakeuser = server.users.find('fakeuser') - assert type(fakeuser) == User - assert fakeuser == "fakeuser" - assert fakeuser != "someotheruser" + # Find user by Name + userbyname = server.users.find('fakeuser') + assert type(userbyname) == User + assert userbyname == "fakeuser" + assert userbyname != "someotheruser" + # Find user by ID + userbyid = server.users.find('U10CX1234') + assert type(userbyid) == User + assert userbyid == "fakeuser" def test_Server_cantconnect(server): From d8fcffd12fc1caf1256cfc39eb60e098d64a0654 Mon Sep 17 00:00:00 2001 From: Jason Roche Date: Thu, 15 Dec 2016 15:00:13 -0800 Subject: [PATCH 2/2] Added test for invalid user search --- tests/test_server.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_server.py b/tests/test_server.py index d60965224..ce1ffb451 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -38,6 +38,9 @@ def test_Server_parse_user_data(server, login_fixture): userbyid = server.users.find('U10CX1234') assert type(userbyid) == User assert userbyid == "fakeuser" + # Don't find invalid user + userbyid = server.users.find('invaliduser') + assert type(userbyid) != User def test_Server_cantconnect(server):