def test_immediate_frequency_subscriptions_are_not_included(self):
        dataset = factories.DatasetActivity()
        factories.Subscription(dataset_id=dataset['id'], frequency='immediate')

        notifies = get_weekly_notifications()

        eq(_get_activities(notifies), [])
    def test_activities_older_than_a_week_are_not_notified(self):
        dataset = factories.DatasetActivity(timestamp=datetime.datetime.now() -
                                            datetime.timedelta(days=8))
        factories.Subscription(dataset_id=dataset['id'], frequency='weekly')

        notifies = get_weekly_notifications()

        eq(_get_activities(notifies), [])
    def test_daily_frequency_subscriptions_of_an_org_are_not_included(self):
        org = Organization()
        factories.Subscription(organization_id=org['id'], frequency='daily')
        Dataset(owner_org=org['id'])

        notifies = get_weekly_notifications()

        eq(_get_activities(notifies), [])
    def test_immediate_frequency_subscriptions_of_an_group_are_not_included(
            self):
        group = Group()
        factories.Subscription(group_id=group['id'], frequency='immediate')
        Dataset(groups=[{'id': group['id']}])

        notifies = get_weekly_notifications()

        eq(_get_activities(notifies), [])
    def test_basic(self):
        dataset = factories.DatasetActivity()
        _ = factories.DatasetActivity()  # decoy
        subscription = factories.Subscription(dataset_id=dataset['id'],
                                              frequency='weekly')

        notifies = get_weekly_notifications()

        eq(notifies.keys(), [subscription['email']])
        eq(_get_activities(notifies),
           [(u'*****@*****.**', u'new package', dataset['id'])])
    def test_activities_already_notified_are_not_notified_again(self):
        dataset = factories.DatasetActivity(timestamp=datetime.datetime.now() -
                                            datetime.timedelta(days=1))
        factories.Subscription(dataset_id=dataset['id'], frequency='weekly')
        subscribe_model.Subscribe.set_emails_last_sent(
            frequency=Frequency.WEEKLY.value,
            emails_last_sent=datetime.datetime.now())
        model.Session.commit()

        notifies = get_weekly_notifications()

        eq(_get_activities(notifies), [])