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)
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)