Test coverage for vnccollab.theme.following

vnccollab/      covered 68% (1329 of 4163 uncovered)
    theme/      covered 68% (1329 of 4163 uncovered)
        following.py      covered 80% (11 of 57 uncovered)

       # import transaction
    1: from persistent import Persistent
    1: from persistent.dict import PersistentDict
    1: from persistent.list import PersistentList
    1: from AccessControl import getSecurityManager
       
    1: from zope.interface import implements
       
    1: from vnccollab.content.interfaces import IFollowing
       
       
    2: class Following(Persistent):
           """Local utility for follow/unfollow users.
    1:     """
    1:     implements(IFollowing)
    1:     __allow_access_to_unprotected_subobjects__ = True
       
    1:     def __init__(self):
    1:         self._subscribed_to = PersistentDict()
    1:         self._my_subscribers = PersistentDict()
       
    1:     def _auth_user_id(self):
>>>>>> manager = getSecurityManager()
>>>>>> return manager.getUser().getId()
1: def _append(self, data, key, value): 14: if data.get(key, False): 1: if value not in data[key]: 1: data[key].append(value) else: 13: data[key] = PersistentList() 13: data[key].append(value) 1: def _remove(self, data, key, value): 4: if data.get(key, False) and value in data[key]: 4: data[key].remove(value) # High Level API Methods 1: def subscribe(self, user1, user2): """Subscribe 'user1' to 'user2'. If user1 is None, get authenticated user id. """ 7: user = user1 if user1 else self._auth_user_id() 7: if user2 == user: # do not subscribe to myself
>>>>>> return
7: self._append(self._subscribed_to, user, user2) 7: self._append(self._my_subscribers, user2, user) 1: def unsubscribe(self, user1, user2): """Unsubscribe 'user1' from 'user2'. If user1 is None, get authenticated user id. """ 2: user = user1 if user1 else self._auth_user_id() 2: if user2 == user: # nothing to do
>>>>>> return
2: self._remove(self._subscribed_to, user, user2) 2: self._remove(self._my_subscribers, user2, user) 1: def is_following(self, user1, user2): """Check if 'user1' is following 'user2'. If user1 is None, get authenticated user id. """ 11: user = user1 if user1 else self._auth_user_id() 11: return self._subscribed_to.get(user, False) and \ 5: user2 in self._subscribed_to[user] 1: def is_followed_by(self, user1, user2): """Check if 'user1' is followed by 'user2'. If user1 is None, get authenticated user id. """
>>>>>> user = user1 if user1 else self._auth_user_id()
>>>>>> return self._my_subscribers.get(user, False) and \
>>>>>> user2 in self._my_subscribers[user]
1: def has_followers(self, user): """Check if user is followed by any other user. If user is None, get authenticated user id. """
>>>>>> user = user if user else self._auth_user_id()
>>>>>> return len(self._my_subscribers.get(user, [])) > 0
1: def has_followings(self, user): """Check if user is following anybody. If user is None, get authenticated user id. """
>>>>>> user = user if user else self._auth_user_id()
>>>>>> return len(self._subscribed_to.get(user, [])) > 0
1: def get_followers(self, user): """Get all followers of the user. If user is None, get authenticated user id. """ 5: user = user if user else self._auth_user_id() 5: return list(self._my_subscribers.get(user, [])) 1: def get_followings(self, user): """Get all users the user is following. If user is None, get authenticated user id. """ 4: user = user if user else self._auth_user_id() 4: return list(self._subscribed_to.get(user, []))