def tests_get_subscription(self):
        """Test retrieving subscriptions information.
        """
        manager_root = ISubscriptionManager(self.root)
        manager_root.subscribability = SUBSCRIBABLE
        manager_root.subscribe("*****@*****.**")
        manager_folder = ISubscriptionManager(self.root.folder)
        manager_folder.subscribe("*****@*****.**")

        manager = ISubscriptionManager(self.root.folder.index)
        manager.subscribability = SUBSCRIBABLE
        manager.subscribe("*****@*****.**")

        self.assertEqual(manager.get_subscription("*****@*****.**"), None)
        subscription = manager.get_subscription("*****@*****.**")
        self.assertTrue(verifyObject(ISubscription, subscription))
        self.assertEqual(subscription.email, "*****@*****.**")
        self.assertEqual(subscription.content, self.root)
        self.assertEqual(len(manager.get_subscriptions()), 3)

        manager_root.subscribability = NOT_SUBSCRIBABLE

        self.assertEqual(manager.get_subscription("*****@*****.**"), None)
        subscription = manager.get_subscription("*****@*****.**")
        self.assertTrue(verifyObject(ISubscription, subscription))
        self.assertEqual(subscription.email, "*****@*****.**")
        self.assertEqual(subscription.content, self.root.folder.index)
        self.assertEqual(len(manager.get_subscriptions()), 1)
Ejemplo n.º 2
0
 def send_notification(
     self, content, template_id='publication_event_template'):
     if not self.are_subscriptions_enabled():
         return
     template = self._get_template(content, template_id)
     data = self._get_default_data(content)
     manager = ISubscriptionManager(content)
     for subscription in manager.get_subscriptions():
         content_url = subscription.content.absolute_url()
         data['subscribed_content'] = subscription.content
         data['service_url'] = content_url + '/subscriptions.html'
         data['to'] = subscription.email
         self._send_email(template, data)