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