def prepare_calfeed(member): # we want the gigs as far back as a year ago date_earliest = timezone.now() - timedelta(days=365) filter_args = { "assoc__member_id": member.id, "gig__date__gt": date_earliest, } if member.preferences.calendar_show_only_confirmed: filter_args["gig__status"] = GigStatusChoices.CONFIRMED if member.preferences.calendar_show_only_committed: filter_args["status__in"] = [ PlanStatusChoices.DEFINITELY, PlanStatusChoices.PROBABLY ] the_plans = Plan.objects.filter(**filter_args) if member.preferences.hide_canceled_gigs: the_plans = the_plans.exclude(gig__status=GigStatusChoices.CANCELLED) the_gigs = [p.gig for p in the_plans] cf = make_calfeed(member, the_gigs, member.preferences.language, member.cal_feed_id) return cf
def test_calfeed_translation(self): self.testgig.details = 'test details' self.testgig.setlist = 'test set' self.testgig.save() cf = make_calfeed(b'flim-flam', self.band.gigs.all(), 'de', self.joeuser.cal_feed_id) self.assertIn(b'SUMMARY:test band:New Gig (Unbekannt)\r\n', cf)
def test_calfeed_setlist(self): self.testgig.setlist = 'test set' self.testgig.save() cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertIn(b'DESCRIPTION:test set\r\n', cf)
def test_calfeed_description(self): self.testgig.details = 'test desc' self.testgig.save() cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertIn(b'DESCRIPTION:test desc\r\n', cf)
def test_calfeed_event_no_enddate(self): cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertTrue( cf.find(b'DTSTART;VALUE=DATE-TIME:20200229T143000Z') > 0) # with no end date set, caldeef should show an end date of an hour after start self.assertTrue(cf.find(b'DTEND;VALUE=DATE-TIME:20200229T153000Z') > 0)
def test_calfeed_summary(self): self.testgig.details = 'test details' self.testgig.setlist = 'test set' self.testgig.save() cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertIn(b'SUMMARY:test band:New Gig (Unknown)\r\n', cf)
def test_calfeed_event_enddate(self): # set the end date and make sure the calfeed is updated self.testgig.enddate = self.testgig.date + timedelta(hours=2) self.testgig.save() cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertTrue( cf.find(b'DTSTART;VALUE=DATE-TIME:20200229T143000Z') > 0) self.assertTrue(cf.find(b'DTEND;VALUE=DATE-TIME:20200229T163000Z') > 0)
def prepare_band_calfeed(band): # we want the gigs as far back as a year ago date_earliest = timezone.now() - timedelta(days=365) filter_args = { "band": band, "hide_from_calendar": False, "date__gt": date_earliest, "status": GigStatusChoices.CONFIRMED, } the_gigs = Gig.objects.filter(**filter_args) cf = make_calfeed(band, the_gigs, band.default_language, band.pub_cal_feed_id) return cf
def test_calfeed_event(self): cf = make_calfeed(b'flim-flam', self.band.gigs.all(), self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertTrue(cf.find(b'EVENT') > 0)
def test_calfeed(self): cf = make_calfeed('flim-flam', [], self.joeuser.preferences.language, self.joeuser.cal_feed_id) self.assertTrue(cf.startswith(b'BEGIN:VCALENDAR')) self.assertTrue(cf.find(b'flim-flam') > 0) self.assertTrue(cf.endswith(b'END:VCALENDAR\r\n'))