From c1cf067ad754b7856264181b45c22ffe11aa407d Mon Sep 17 00:00:00 2001 From: Emre Yilmaz Date: Fri, 7 Aug 2015 09:15:27 +0300 Subject: [PATCH] Add mutual_friends method and it's tests. this will bump the version to 0.0.2 --- relationships/relationship.py | 6 ++++++ setup.py | 15 +++++++++++++++ tests.py | 21 +++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 setup.py diff --git a/relationships/relationship.py b/relationships/relationship.py index 8762201..f7166f8 100644 --- a/relationships/relationship.py +++ b/relationships/relationship.py @@ -1,4 +1,5 @@ + import redis from keys import key_list as default_key_list @@ -81,6 +82,11 @@ def friends(self): "user:{}:{}".format(self._get_actor(), self.key_list["followers"]), ) + def mutual_friends(self, to_id): + actor_friends, to_id_friends = self(self._get_actor()).friends(), self(to_id).friends() + + return actor_friends.intersection(to_id_friends) + def followers(self): return self._list_call(self.key_list["followers"]) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..a594586 --- /dev/null +++ b/setup.py @@ -0,0 +1,15 @@ +from setuptools import setup + +setup( + name='relationships', + version='0.0.2', + packages=['relationships'], + url='http://github.com/emre/relationships', + license='MIT', + author='Emre Yilmaz', + author_email='hello@emre.sh', + description='redis backed user relationships', + install_requires=['redis'], + +) + diff --git a/tests.py b/tests.py index be041e1..07591f4 100644 --- a/tests.py +++ b/tests.py @@ -151,6 +151,27 @@ def test_blocked_by(self): self.assertEqual(r(100).blocked(), set(['10000', '10001', '10002'])) + def test_mutual_friends(self): + + r = Relationship(redis_connection=self.redis_connection) + + r('Emre').follow('Aydan') + r('Aydan').follow('Emre') + + r('Emre').follow('Samed') + r('Samed').follow('Emre') + + r('Emre').follow('Fka') + r('Fka').follow('Emre') + + r('Fka').follow('Aydan') + r('Aydan').follow('Fka') + + r('Fka').follow('Samed') + r('Samed').follow('Fka') + + self.assertEqual(r('Emre').mutual_friends('Fka'), set(['Samed', 'Aydan'])) + if __name__ == '__main__': unittest.main() \ No newline at end of file