def test_basic(self, mail_recipient): dataset, activity = factories.DatasetActivity( timestamp=datetime.datetime.now() - datetime.timedelta(minutes=10), return_activity=True) # {subscription: [activity, ...], ...} subscription_activities = { factories.Subscription(dataset_id=dataset['id'], return_object=True): [activity] } notifications = dictize_notifications(subscription_activities) send_notification_email(code='the-code', email='*****@*****.**', notifications=notifications) mail_recipient.assert_called_once() body = mail_recipient.call_args[1]['body'] print(body) assert_in(dataset['title'], body) assert_in('http://test.ckan.net/dataset/{}'.format(dataset['id']), body) assert_in('new dataset', body) body = mail_recipient.call_args[1]['body_html'] print(body) assert_in(dataset['title'], body) assert_in('http://test.ckan.net/dataset/{}'.format(dataset['id']), body) assert_in('new dataset', body)
def test_org(self): org, activity = factories.OrganizationActivity( timestamp=datetime.datetime.now() - datetime.timedelta(minutes=10), return_activity=True) # {subscription: [activity, ...], ...} subscription_activities = { factories.Subscription(organization_id=org['id'], return_object=True): [activity] } notifications = dictize_notifications(subscription_activities) email_vars = get_notification_email_vars(email='*****@*****.**', notifications=notifications) eq(email_vars['notifications'], [{ 'activities': [{ 'activity_type': u'new organization', 'dataset_href': u'', 'dataset_link': u'', 'timestamp': activity.timestamp }], 'object_link': 'http://test.ckan.net/organization/{}'.format(org['id']), 'object_name': org['name'], 'object_title': org['title'], 'object_type': u'organization' }])
def test_basic(self): dataset, activity = factories.DatasetActivity( timestamp=datetime.datetime.now() - datetime.timedelta(minutes=10), return_activity=True) # {subscription: [activity, ...], ...} subscription_activities = { factories.Subscription(dataset_id=dataset['id'], return_object=True): [activity] } notifications = dictize_notifications(subscription_activities) get_notification_email_contents(code='the-code', email='*****@*****.**', notifications=notifications)
def test_basic(self, mail_recipient): dataset, activity = factories.DatasetActivity( timestamp=datetime.datetime.now() - datetime.timedelta(minutes=10), return_activity=True) # {subscription: [activity, ...], ...} subscription_activities = { factories.Subscription(dataset_id=dataset['id'], return_object=True): [activity] } notifications_by_email = { '*****@*****.**': dictize_notifications(subscription_activities) } send_emails(notifications_by_email) mail_recipient.assert_called_once() body = mail_recipient.call_args[1]['body'] print(body) assert_in('new dataset', body)
def test_org(self): from ckan import model org = ckan_factories.Organization() subscribe_model.Subscribe.set_emails_last_sent( subscribe_model.Frequency.IMMEDIATE.value, datetime.datetime.now()) dataset = ckan_factories.Dataset(owner_org=org['id']) activity = model.Session.query(model.Activity) \ .filter_by(object_id=dataset['id']).first() subscription_activities = { factories.Subscription(organization_id=org['id'], return_object=True): [activity] } notifications = dictize_notifications(subscription_activities) email = get_notification_email_contents(code='the-code', email='*****@*****.**', notifications=notifications) # Check we link to the dataset, not just the org assert_in('http://test.ckan.net/dataset/{}'.format(dataset['name']), email[1]) assert_in( '<a href="http://test.ckan.net/dataset/{}">Test Dataset</a>'. format(dataset['name']), email[2])
def test_basic(self): dataset, activity = factories.DatasetActivity( timestamp=datetime.datetime.now() - datetime.timedelta(minutes=10), return_activity=True) # {subscription: [activity, ...], ...} subscription_activities = { factories.Subscription(dataset_id=dataset['id'], return_object=True): [activity] } notifications = dictize_notifications(subscription_activities) email_vars = get_notification_email_vars(email='*****@*****.**', notifications=notifications) eq(email_vars['notifications'], [{ 'activities': [{ 'activity_type': u'new dataset', 'dataset_href': 'http://test.ckan.net/dataset/{}'.format(dataset['name']), 'dataset_link': literal( u'<a href="http://test.ckan.net/dataset/{}">{}</a>'.format( dataset['name'], dataset['title'])), 'timestamp': activity.timestamp }], 'object_link': 'http://test.ckan.net/dataset/{}'.format(dataset['id']), 'object_name': dataset['name'], 'object_title': dataset['title'], 'object_type': u'dataset' }])