Exemplo n.º 1
0
 def test_prev_daily_digest_date(self):
     today = dt.today()
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     digestobj.date_last_digest = today
     digestobj.save()
     prev_dt = dh.date_prev_digest(digestobj, today)
     self.assertEqual(prev_dt, today - timedelta(days=1))
Exemplo n.º 2
0
 def test_next_daily_digest_existing_past_date(self):
     "The next digest date is correctly generated for a daily digest with a last published date in the past."
     today = dt.today()
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     digestobj.date_last_digest = today - timedelta(
         days=28)  # no digest has been created for a month. tsk tsk.
     digestobj.save()
     self.assertEqual(dh.date_next_digest(digestobj), today)
Exemplo n.º 3
0
 def test_next_weekly_digest_new_digest_same_day(self):
     "The next digest date is correctly generated for a weekly digest with no last published date in the present."
     today_sat = date(year=2012, month=02,
                      day=01) + rd.relativedelta(weekday=rd.SA)
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'weekly',
                                                    'sat')
     date_next_digest = dh.date_next_digest(digestobj, today_sat)
     self.assertEqual(date_next_digest, today_sat)
Exemplo n.º 4
0
 def test_create_daily_digest(self):
     "A daily digest object can be successfully and correctly be created."
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     self.assertTrue(isinstance(digestobj, models.DigestFeed))
     digestobj2 = models.DigestFeed.objects.get(pk=1)
     self.assertEqual(digestobj, digestobj2)
     self.assertEqual(digestobj.user, self.get_user())
     self.assertEqual(digestobj.feed, self.feedobj)
Exemplo n.º 5
0
 def test_next_daily_digest_existing_digest(self):
     "The next digest date is correctly generated for a daily digest with a last published date in the present."
     today = dt.today()
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     digestobj.date_last_digest = today
     digestobj.save()
     self.assertEqual(dh.date_next_digest(digestobj),
                      today + timedelta(days=1))
Exemplo n.º 6
0
 def test_prev_weekly_digest_date(self):
     today = date(year=2012, month=02, day=28)
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'weekly',
                                                    'sun')
     digestobj.date_last_digest = today
     digestobj.save()
     prev_dt = dh.date_prev_digest(digestobj, today)
     self.assertEqual(prev_dt, today - rd.relativedelta(weekday=rd.SU(-1)))
Exemplo n.º 7
0
 def test_next_daily_digest_existing_future_date(self):
     "The next digest date is correctly generated for a daily digest with a last published date in the future."
     today = dt.today()
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     digestobj.date_last_digest = today + timedelta(
         days=28)  # a month from now a digest was/will be created
     digestobj.save()
     self.assertEqual(dh.date_next_digest(digestobj), today)
Exemplo n.º 8
0
 def setUp(self):
     # creates 21 objects over 7 days (~3 objects per digest per day)
     today_sat = dt.today() + rd.relativedelta(weekday=rd.SA)
     start_dt, end_dt = today_sat - timedelta(days=7), today_sat
     cbit = self.custom_feed_url(21, start_dt, end_dt).lstrip('/')
     logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                     user=self.get_user(),
                     create_entries=True)
     feedobj = models.Feed.objects.get(pk=1)
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    feedobj, 'daily')
     dh.create_prev_digest_entries(digestobj, today=end_dt, until=start_dt)
Exemplo n.º 9
0
 def setUp(self):
     # creates 7 entries over 7 days
     period = 7
     cbit = self.custom_feed_url(period,
                                 date.today() - timedelta(days=period),
                                 date.today()).lstrip('/')
     logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                     create_entries=True)
     self.feedobj = models.Feed.objects.all()[0]
     # create a digest for the feed
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), self.feedobj, 'daily')
Exemplo n.º 10
0
 def test_next_weekly_digest_existing_future_date(self):
     "The next digest date is correctly generated for a weekly digest with a last published date in the future."
     today_mon = date(year=2012, month=02,
                      day=01) + rd.relativedelta(weekday=rd.SA)
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'weekly',
                                                    'sat')
     digestobj.date_last_digest = today_mon + timedelta(days=28)
     digestobj.save()
     date_next_digest = dh.date_next_digest(digestobj, today=today_mon)
     this_sat = today_mon + rd.relativedelta(weekday=rd.SA)
     self.assertEqual(date_next_digest, this_sat)
Exemplo n.º 11
0
 def setUp(self):
     # creates 14 entries over 14 days
     self.period = 14
     today_sat = dt.today() + rd.relativedelta(weekday=rd.SA)
     self.start_dt = dt.min(today_sat - timedelta(days=self.period))
     self.end_dt = dt.max(today_sat)
     cbit = self.custom_feed_url(self.period, self.start_dt,
                                 self.end_dt).lstrip('/')
     res = logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                           user=self.get_user(),
                           create_entries=True)
     self.feedobj = models.Feed.objects.get(pk=1)
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), self.feedobj, 'weekly', 'sat')
Exemplo n.º 12
0
 def setUp(self):
     # create 28 entries over 14 days
     period = 14
     self.today = dt.today() + rd.relativedelta(weekday=rd.SA(-1))
     self.start_dt = self.today - timedelta(days=period)
     self.end_dt = self.today
     cbit = self.custom_feed_url(period * 2, self.start_dt,
                                 self.end_dt).lstrip('/')
     res = logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                           user=self.get_user(),
                           create_entries=True)
     feedobj = models.Feed.objects.get(pk=1)
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), feedobj, 'weekly', 'sat')
Exemplo n.º 13
0
 def setUp(self):
     # create 14 entries over 7 days
     period = 7
     self.today = dt.today()
     self.start_dt = self.today - timedelta(days=period)
     self.end_dt = self.today
     cbit = self.custom_feed_url(period * 2, self.start_dt,
                                 self.end_dt).lstrip('/')
     res = logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                           user=self.get_user(),
                           create_entries=True)
     feedobj = models.Feed.objects.get(pk=1)
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), feedobj, 'daily')
Exemplo n.º 14
0
 def setUp(self):
     self.period = 7
     today_sat = datetime.now() + rd.relativedelta(weekday=rd.SA)
     cbit = self.custom_feed_url(self.period,
                                 today_sat - timedelta(days=self.period),
                                 today_sat).lstrip('/')
     logic.pull_feed("http://localhost:8000/endtimes/%s" % cbit,
                     create_entries=True)
     self.feedobj = models.Feed.objects.get(pk=1)
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), self.feedobj, 'weekly', 'sat')
     self.compobj = dh.create_digest_entry(self.digestobj)
     self.assertTrue(isinstance(self.compobj, models.DigestEntry))
     self.assertTrue(self.compobj.entries.all().count() > 0)
Exemplo n.º 15
0
 def test_client_update_digest_daily_to_weekly(self):
     "A user has digest entries created for them if updating from a daily to a weekly digest"
     # create a weekly digest
     self.digestobj, created = dh.get_create_digest_feed(
         self.get_user(), self.feedobj, 'weekly', 'sun')
     url = reverse("update-digest-feed",
                   kwargs={
                       'feed_id': self.feedobj.id,
                       'feed_slug': self.feedobj.slug
                   })
     resp = self.c.post(url, {'recurrance': 'daily'}, follow=True)
     # fetch the updated digest
     updated_digest_obj = models.DigestFeed.objects.get(
         pk=self.digestobj.id)
     self.assertRedirects(resp, reverse('dash'))
     self.assertEqual(models.DigestEntry.objects.all().count(),
                      dh.auto_step_count(updated_digest_obj))
Exemplo n.º 16
0
def create_digest_feed(request, feed_id, feed_slug):
    feedobj = get_object_or_404(models.Feed, pk=feed_id)
    form = forms.DigestFeedForm()
    if request.POST:
        form = forms.DigestFeedForm(request.POST, instance=feedobj)
        if form.is_valid():
            c_data = form.cleaned_data
            digestfeedobj, created = dh.get_create_digest_feed(
                request.user, feedobj, c_data['recurrance'],
                c_data['day_of_week'])
            digestentry_list = dh.create_n_prev_digest_entries(
                digestfeedobj, steps=dh.auto_step_count(digestfeedobj))
            messages.success(
                request, 'Successfully created a %s digest feed for "%s".' %
                (digestfeedobj.recurrance, feedobj))
            messages.info(
                request,
                '%s entries for the previous intervals have been created.' %
                len(digestentry_list))
            return named_redirect('dash')
        else:
            messages.error(request, "Problems with your form submission.")
    return {'feedobj': feedobj, 'form': form, 'digestobj': None}
Exemplo n.º 17
0
 def test_next_daily_digest_new_digest(self):
     "The next digest date is correctly generated for a daily digest with no last published date."
     today = dt.today()
     digestobj, created = dh.get_create_digest_feed(self.get_user(),
                                                    self.feedobj, 'daily')
     self.assertEqual(dh.date_next_digest(digestobj), today)