Example #1
0
 def _move_rule(self, arg, req):
     tokens = [as_int(val, 0) for val in arg.split('-', 1)]
     if len(tokens) == 2:
         rule_id, priority = tokens
         if rule_id > 0 and priority > 0:
             session = req.session
             Subscription.move(self.env, rule_id, priority, session.sid,
                               session.authenticated)
Example #2
0
    def test_move(self):
        def query_subs():
            return self.env.db_query(
                """\
                SELECT distributor, priority, class
                FROM notify_subscription WHERE sid=%s AND authenticated=%s
                ORDER BY distributor, priority""", ('joe', 1))

        req = MockRequest(self.env, authname='joe')
        with self.env.db_transaction:
            rule_ids = {}
            for class_, distributor in [('EmailSubscriber1', 'email'),
                                        ('EmailSubscriber2', 'email'),
                                        ('EmailSubscriber3', 'email'),
                                        ('EmailSubscriber4', 'email'),
                                        ('XmppSubscriber1', 'xmpp'),
                                        ('XmppSubscriber2', 'xmpp')]:
                rule_ids[(class_, distributor)] = \
                    self._add_subscriber(req, class_, distributor)
        self.assertEqual([
            ('email', 1, 'EmailSubscriber1'),
            ('email', 2, 'EmailSubscriber2'),
            ('email', 3, 'EmailSubscriber3'),
            ('email', 4, 'EmailSubscriber4'),
            ('xmpp', 1, 'XmppSubscriber1'),
            ('xmpp', 2, 'XmppSubscriber2'),
        ], query_subs())

        Subscription.move(self.env, rule_ids[('EmailSubscriber3', 'email')], 1)
        self.assertEqual([
            ('email', 1, 'EmailSubscriber3'),
            ('email', 2, 'EmailSubscriber1'),
            ('email', 3, 'EmailSubscriber2'),
            ('email', 4, 'EmailSubscriber4'),
            ('xmpp', 1, 'XmppSubscriber1'),
            ('xmpp', 2, 'XmppSubscriber2'),
        ], query_subs())

        Subscription.move(self.env, rule_ids[('EmailSubscriber1', 'email')], 4)
        self.assertEqual([
            ('email', 1, 'EmailSubscriber3'),
            ('email', 2, 'EmailSubscriber2'),
            ('email', 3, 'EmailSubscriber4'),
            ('email', 4, 'EmailSubscriber1'),
            ('xmpp', 1, 'XmppSubscriber1'),
            ('xmpp', 2, 'XmppSubscriber2'),
        ], query_subs())

        Subscription.move(self.env, rule_ids[('EmailSubscriber3', 'email')], 3)
        self.assertEqual([
            ('email', 1, 'EmailSubscriber2'),
            ('email', 2, 'EmailSubscriber4'),
            ('email', 3, 'EmailSubscriber3'),
            ('email', 4, 'EmailSubscriber1'),
            ('xmpp', 1, 'XmppSubscriber1'),
            ('xmpp', 2, 'XmppSubscriber2'),
        ], query_subs())
Example #3
0
 def _move_rule(self, arg, req):
     (rule_id, new_priority) = arg.split('-')
     if int(new_priority) >= 1:
         Subscription.move(self.env, rule_id, int(new_priority))
Example #4
0
 def _move_rule(self, arg, req):
     (rule_id, new_priority) = arg.split('-')
     if int(new_priority) >= 1:
         Subscription.move(self.env, rule_id, int(new_priority))