def test_walk_subscriptions(self):
        subs1 = list((path_in_site(obj), sub) for
                     obj, n, sub in walk_subscriptions(self.portal))
        self.assertEqual(len(subs1), 2)
        self.assertTrue(('f1/b/2', self.user2_sub) in subs1)
        self.assertTrue(('f1/b', self.user1_sub) in subs1)

        subs2 = list((path_in_site(obj), sub) for
                     obj, n, sub in
                     walk_subscriptions(self.portal['f1']['b']['2']))
        self.assertEqual(len(subs2), 1)
        self.assertTrue(('f1/b/2', self.user2_sub) in subs1)

        subs3 = list(walk_subscriptions(self.portal['f1']['a']))
        self.assertEqual(len(subs3), 0)
Beispiel #2
0
    def list_user_subscriptions(self, REQUEST, get_all=False):
        user_id = self.get_user_id(REQUEST)

        if get_all:
            obj = self.get_context().getSite()
        else:
            obj = self.get_context()

        for obj, n, subscription in walk_subscriptions(obj):
            if not isinstance(subscription, AccountSubscription):
                continue
            if subscription.user_id != user_id:
                continue
            yield {
                'location': path_in_site(obj),
                'notif_type': subscription.notif_type,
                'lang': subscription.lang,
            }
 def walk_site_subscriptions(self):
     return set((sub.user_id, path_in_site(obj),
                 sub.notif_type, sub.lang) for
                     obj, n, sub in walk_subscriptions(self.portal))
 def subscr():
     return set((path_in_site(obj), sub.notif_type, sub.user_id) for
                 obj, n, sub in walk_subscriptions(self.portal))