示例#1
0
    def testSetDescription(self):
        group = GroupPage(slug = "sandmen", title = "Sandmen")
        self.home.add_child(instance=group)
        group.save_revision().publish()
        page = MultidayEventPage(owner = self.user,
                                 slug  = "road-trip",
                                 title = "Road Trip",
                                 date_from = dt.date(2016,11,1),
                                 date_to   = dt.date(2016,11,10),
                                 group_page = group)
        self.calendar.add_child(instance=page)
        page.save_revision().publish()
        request = self._getRequest()
        thisEvent = ThisEvent(page.title, page, page.get_url(request))
        entry = EventEntry.fromEvent(thisEvent, request)
        rss = entry.rss_entry()
        self.assertEqual(etree.tostring(rss),
b"""<item><title>Road Trip</title><link>http://joy.test/events/road-trip/</link><description>\n
  &lt;div class="joy-ev-who joy-field"&gt;
    &lt;a class="joy-ev-who__link" href="http://joy.test/sandmen/"&gt;Sandmen&lt;/a&gt;
  &lt;/div&gt;\n\n\n
  &lt;div class="joy-ev-when joy-field"&gt;
    Tuesday 1st of November 2016 to Thursday 10th of November 2016\n  &lt;/div&gt;\n\n\n\n
&lt;div class="rich-text"&gt;&lt;/div&gt;
</description><guid isPermaLink="true">http://joy.test/events/road-trip/</guid></item>""")
示例#2
0
 def testFromPage(self):
     page = MultidayEventPage(owner=self.user,
                              slug="kainiue-food-festival",
                              title="KaiNiue Food Festival",
                              date_from=dt.date(2018, 11, 2),
                              date_to=dt.date(2018, 11, 5),
                              tz=pytz.timezone("Pacific/Niue"))
     self.calendar.add_child(instance=page)
     page.save_revision().publish()
     gev = MultidayGEvent.fromPage(page)
     self.assertEqual(gev['dates'], "20181102T000000/20181105T235959")
     self.assertEqual(gev['ctz'], "Pacific/Niue")
示例#3
0
 def testFromPage(self):
     page = MultidayEventPage(owner=self.user,
                              slug="niuekulele2018",
                              title="Niuekulele Ukulele Music Festival",
                              date_from=dt.date(2018, 3, 16),
                              date_to=dt.date(2018, 3, 20),
                              tz=pytz.timezone("Pacific/Niue"))
     self.calendar.add_child(instance=page)
     page.save_revision().publish()
     vev = MultidayVEvent.fromPage(page)
     tz = pytz.timezone("Pacific/Niue")
     self.assertEqual(vev['dtstart'].dt,
                      tz.localize(dt.datetime(2018, 3, 16, 0, 0)))
     self.assertEqual(
         vev['dtend'].dt,
         tz.localize(dt.datetime(2018, 3, 20, 23, 59, 59, 999999)))
示例#4
0
 def testServeMultiday(self):
     page = MultidayEventPage(owner=self.user,
                              slug="food-festival",
                              title="Food Festival",
                              date_from=dt.date(2018, 11, 2),
                              date_to=dt.date(2018, 11, 5),
                              tz=pytz.timezone("Pacific/Niue"))
     self.calendar.add_child(instance=page)
     page.save_revision().publish()
     response = self.handler.serve(
         page, self._getRequest("/events/food-festival/"
                                "?format=google"))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(
         response.url,
         "http://www.google.com/calendar/event?action=TEMPLATE&"
         "text=Food+Festival&dates=20181102T000000%2F20181105T235959&"
         "ctz=Pacific%2FNiue")
示例#5
0
    def testSetCategory(self):
        cat = EventCategory.objects.create(code="A1", name="AlphaOne")
        page = MultidayEventPage(owner = self.user,
                                 slug  = "road-trip",
                                 title = "Road Trip",
                                 date_from = dt.date(2016,11,1),
                                 date_to   = dt.date(2016,11,10),
                                 time_from = dt.time(10),
                                 category  = cat)
        self.calendar.add_child(instance=page)
        page.save_revision().publish()
        request = self._getRequest()
        thisEvent = ThisEvent(page.title, page, page.get_url(request))
        entry = EventEntry.fromEvent(thisEvent, request)
        self.assertEqual(entry.category(), [{'term': 'AlphaOne'}])
        rss = entry.rss_entry()
        self.assertEqual(etree.tostring(rss),
b"""<item><title>Road Trip</title><link>http://joy.test/events/road-trip/</link><description>\n\n\n
  &lt;div class="joy-ev-when joy-field"&gt;
    Tuesday 1st of November 2016 at 10am to Thursday 10th of November 2016\n  &lt;/div&gt;\n\n\n\n
&lt;div class="rich-text"&gt;&lt;/div&gt;
</description><guid isPermaLink="true">http://joy.test/events/road-trip/</guid><category>AlphaOne</category></item>""")
示例#6
0
 def testGetAllCurrentEvents(self):
     today = timezone.localdate()
     futureEvent = MultidayEventPage(owner = self.user,
                                     slug  = "yesterday",
                                     title = "Yesterday's Event",
                                     date_from = today - dt.timedelta(days=1),
                                     date_to   = today + dt.timedelta(days=3),
                                     time_from = dt.time(17),
                                     time_to   = dt.time(10,30))
     self.calendar.add_child(instance=futureEvent)
     events = getAllUpcomingEvents(self.request, home=self.home)
     self.assertEqual(len(events), 1)
     title, event, url = events[0]
     self.assertEqual(title, "Yesterday's Event")
     self.assertEqual(event.slug, "yesterday")
     events0 = getAllUpcomingEvents(self.request)
     self.assertEqual(len(events0), 1)
示例#7
0
    def setUp(self):
        self.home = Page.objects.get(slug='home')
        self.user = User.objects.create_user('i', '*****@*****.**', 's3cr3t')
        self.request = RequestFactory().get("/test")
        self.request.user = self.user
        self.request.session = {}
        self.calendar = GeneralCalendarPage(owner = self.user,
                                            slug  = "events",
                                            title = "Events")
        self.home.add_child(instance=self.calendar)
        self.group = GroupPage(slug = "initech", title = "Initech Corporation")
        self.home.add_child(instance=self.group)

        self.show = SimpleEventPage(owner = self.user,
                                    slug   = "pet-show",
                                    title  = "Pet Show",
                                    date      = dt.date(2013,1,5),
                                    time_from = dt.time(11),
                                    time_to   = dt.time(17,30),
                                    uid       = "29daefed-fed1-4e47-9408-43ec9b06a06d")
        self.calendar.add_child(instance=self.show)

        GROUPS = PageViewRestriction.GROUPS
        self.friends = Group.objects.create(name = "Friends")
        self.rendezvous = SimpleEventPage(owner = self.user,
                                          slug   = "rendezvous",
                                          title  = "Private Rendezvous",
                                          date      = dt.date(2013,1,10),
                                          uid       = "80af64e7-84e6-40d9-8b4f-7edf92aab9f7")
        self.calendar.add_child(instance=self.rendezvous)
        self.rendezvous.save_revision().publish()
        restriction = PageViewRestriction.objects.create(restriction_type = GROUPS,
                                                         page = self.rendezvous)
        restriction.groups.set([self.friends])
        restriction.save()

        self.party = MultidayEventPage(owner = self.user,
                                       slug  = "allnighter",
                                       title = "All Night",
                                       date_from = dt.date(2012,12,31),
                                       date_to   = dt.date(2013,1,1),
                                       time_from = dt.time(23),
                                       time_to   = dt.time(3),
                                       uid       = "initiative+technology")
        self.calendar.add_child(instance=self.party)

        self.standup = RecurringEventPage(slug   = "test-meeting",
                                          title  = "Test Meeting",
                                          repeat = Recurrence(dtstart=dt.date(2013,1,1),
                                                              until=dt.date(2013,5,31),
                                                              freq=WEEKLY,
                                                              byweekday=[MO,WE,FR]),
                                          time_from = dt.time(13,30),
                                          time_to   = dt.time(16),
                                          uid       = "initiative+technology")
        self.group.add_child(instance=self.standup)

        self.postponement = PostponementPage(owner = self.user,
                                             slug  = "2013-01-09-postponement",
                                             title = "Postponement for Wednesday 16th of October",
                                             overrides = self.standup,
                                             except_date = dt.date(2013,1,16),
                                             cancellation_title   = "Meeting Postponed",
                                             cancellation_details =
                                                 "The meeting has been postponed until tomorrow",
                                             postponement_title   = "A Meeting",
                                             date      = dt.date(2013,1,17),
                                             time_from = dt.time(13),
                                             time_to   = dt.time(16,30),
                                             details   = "Yes a test meeting on a Thursday")
        self.standup.add_child(instance=self.postponement)

        cancelTuesday = CancellationPage(owner = self.user,
                                         slug  = "2013-01-01-cancellation",
                                         title = "CancellationPage for Tuesday 1st of January",
                                         overrides = self.standup,
                                         except_date = dt.date(2013,1,1),
                                         cancellation_title   = "Meeting Cancelled")
        self.standup.add_child(instance=cancelTuesday)
示例#8
0
 def testMultidayEventVerboseName(self):
     self.assertEqual(MultidayEventPage.get_verbose_name(),
                      "Page de l'événement sur plusieurs jours")
示例#9
0
 def testMultidayEventVerboseName(self):
     self.assertEqual(MultidayEventPage.get_verbose_name(),
                      "Multiday event page")