Esempio n. 1
0
 def testDayWithEvents(self):
     calendar = getPage("/home/events/")
     event1 = SimpleEventPage(owner=self.user,
                              slug="memory",
                              title="We remember",
                              date=dt.date(2011, 6, 8),
                              time_from=dt.time(9, 30),
                              time_to=dt.time(10, 30))
     calendar.add_child(instance=event1)
     event1.save_revision().publish()
     event2 = SimpleEventPage(owner=self.user,
                              slug="action",
                              title="Make things better",
                              date=dt.date(2011, 6, 8),
                              time_from=dt.time(11, 30),
                              time_to=dt.time(16, 0))
     calendar.add_child(instance=event2)
     event2.save_revision().publish()
     response = self.client.get("/events/2011/6/8/")
     select = response.soup.select
     self.assertEqual(response.status_code, 200)
     self.assertEqual(len(select(".joy-cal-list")), 1)
     events = select(".joy-ev-item")
     self.assertEqual(len(events), 2)
     title = events[0].select("a.joy-title__link")[0]
     self.assertEqual(title.string.strip(), "We remember")
     self.assertEqual(title['href'], "/events/memory/")
Esempio n. 2
0
 def setUp(self):
     GeneralCalendarPage.is_creatable = True
     self.user = User.objects.create_user('i', '*****@*****.**', 's3(r3t')
     self.request = RequestFactory().get("/test")
     self.request.user = self.user
     self.request.session = {}
     self.calendar = GeneralCalendarPage(owner=self.user,
                                         slug="calendar",
                                         title="My Calendar")
     home = getPage("/home/")
     home.add_child(instance=self.calendar)
     self.calendar.save_revision().publish()
     event = SimpleEventPage(owner=self.user,
                             slug="bbq",
                             title="BBQ",
                             uid="a94c3211-08e5-4e36-9448-86a869a47d89",
                             date=dt.date(2011, 8, 20),
                             time_from=dt.time(18, 30))
     self.calendar.add_child(instance=event)
     event.save_revision().publish()
     self.group = GroupPage(slug="initech", title="Initech Corporation")
     home.add_child(instance=self.group)
     self.group.save_revision().publish()
     event = SimpleEventPage(owner=self.user,
                             slug="planning-meeting",
                             title="Planning to Plan",
                             uid="a96484da-e350-45c7-af03-97ca2bb173d6",
                             date=dt.date(2011, 8, 20),
                             time_from=dt.time(8, 0))
     self.group.add_child(instance=event)
     event.save_revision().publish()
Esempio n. 3
0
 def setUp(self):
     SpecificCalendarPage.is_creatable = True
     self.user = User.objects.create_user('i', '*****@*****.**', 's3(r3t')
     self.request = RequestFactory().get("/test")
     self.request.user = self.user
     self.request.session = {}
     self.calendar1 = SpecificCalendarPage(owner=self.user,
                                           slug="calendar1",
                                           title="Red Team Calendar")
     home = getPage("/home/")
     home.add_child(instance=self.calendar1)
     self.calendar1.save_revision().publish()
     event = SimpleEventPage(owner=self.user,
                             slug="football",
                             title="Football Game",
                             uid="570ed9c4-4503-4b45-b15e-c99faed9c531",
                             date=dt.date(2011, 6, 5),
                             time_from=dt.time(9, 30),
                             time_to=dt.time(11, 0))
     self.calendar1.add_child(instance=event)
     event.save_revision().publish()
     self.calendar2 = SpecificCalendarPage(owner=self.user,
                                           slug="calendar2",
                                           title="Green Team Calendar")
     home.add_child(instance=self.calendar2)
     self.calendar2.save_revision().publish()
     event = SimpleEventPage(owner=self.user,
                             slug="tree-planting",
                             title="Tree Planting",
                             uid="eb50e787-12bf-477b-8493-c4414ac001ca",
                             date=dt.date(2011, 6, 5),
                             time_from=dt.time(9, 30))
     self.calendar2.add_child(instance=event)
     event.save_revision().publish()
Esempio n. 4
0
 def testGroupsAuth(self):
     GROUPS = PageViewRestriction.GROUPS
     presidium = Group.objects.create(name="Presidium")
     secretariat = Group.objects.create(name="Secretariat")
     assembly = Group.objects.create(name="Assembly")
     meeting = SimpleEventPage(owner=self.user,
                               slug="admin-cmte",
                               title="Administration Committee Meeting",
                               date=dt.date(2015, 6, 20),
                               time_from=dt.time(16, 30))
     self.calendar.add_child(instance=meeting)
     meeting.save_revision().publish()
     restriction = PageViewRestriction.objects.create(
         restriction_type=GROUPS, page=meeting)
     restriction.groups.set([presidium, secretariat])
     restriction.save()
     self.assertEqual(list(SimpleEventPage.events.all()),
                      [self.event, meeting])
     request = RequestFactory().get("/test")
     request.user = self.user
     request.session = {}
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event])
     request.user = User.objects.create_superuser('joe', '*****@*****.**',
                                                  's3cr3t')
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event, meeting])
     request.user = User.objects.create_user('jill', '*****@*****.**',
                                             's3cr3t')
     request.user.groups.set([secretariat, assembly])
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event, meeting])
Esempio n. 5
0
 def testGroup(self):
     self.assertIsNone(self.event.group)
     group = GroupPage(slug="runners", title="Runners")
     self.home.add_child(instance=group)
     race = SimpleEventPage(owner=self.user,
                            slug="race",
                            title="Race",
                            date=dt.date(2008, 6, 3))
     group.add_child(instance=race)
     self.assertEqual(race.group, group)
Esempio n. 6
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))
        self.calendar.add_child(instance=self.show)

        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))
        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))
        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)
Esempio n. 7
0
 def testPastDt(self):
     self.assertEqual(self.event._past_datetime_from, datetimetz(1987,6,5,11,0))
     now = timezone.localtime()
     earlier = now - dt.timedelta(hours=1)
     if earlier.date() != now.date():
         earlier = datetimetz(now.date(), dt.time.min)
     nowEvent = SimpleEventPage(owner = self.user,
                                slug  = "now",
                                title = "Now Event",
                                date      = now.date(),
                                time_from = earlier.time(),
                                time_to   = dt.time.max)
     self.calendar.add_child(instance=nowEvent)
     self.assertEqual(nowEvent._past_datetime_from, earlier)
     tomorrow = timezone.localdate() + dt.timedelta(days=1)
     futureEvent = SimpleEventPage(owner = self.user,
                                   slug  = "tomorrow",
                                   title = "Tomorrow's Event",
                                   date  = tomorrow)
     self.calendar.add_child(instance=futureEvent)
     self.assertIsNone(futureEvent._past_datetime_from)
Esempio n. 8
0
 def testStatus(self):
     self.assertEqual(self.event.status, "finished")
     self.assertEqual(self.event.status_text, "This event has finished.")
     now = timezone.localtime()
     earlier = now - dt.timedelta(hours=1)
     if earlier.date() != now.date():
         earlier = datetimetz(now.date(), dt.time.min)
     nowEvent = SimpleEventPage(owner=self.user,
                                slug="now",
                                title="Now Event",
                                date=now.date(),
                                time_from=earlier.time(),
                                time_to=dt.time.max)
     self.assertEqual(nowEvent.status, "started")
     self.assertEqual(nowEvent.status_text, "This event has started.")
     tomorrow = timezone.localdate() + dt.timedelta(days=1)
     futureEvent = SimpleEventPage(owner=self.user,
                                   slug="tomorrow",
                                   title="Tomorrow's Event",
                                   date=tomorrow)
     self.calendar.add_child(instance=futureEvent)
     self.assertIsNone(futureEvent.status)
     self.assertEqual(futureEvent.status_text, "")
Esempio n. 9
0
 def testGetEventsAcrossDateline(self):
     showDay = SimpleEventPage(owner=self.user,
                               slug="tamakautoga-village-show-day",
                               title="Tamakautoga Village Show Day",
                               date=dt.date(2016, 7, 30),
                               tz=pytz.timezone("Pacific/Niue"))
     self.calendar.add_child(instance=showDay)
     evods = SimpleEventPage.events.byDay(dt.date(2016, 7, 31),
                                          dt.date(2016, 7, 31))
     self.assertEqual(len(evods[0].days_events), 1)
     self.assertEqual(len(evods[0].continuing_events), 0)
     event = evods[0].days_events[0].page
     self.assertEqual(event.at, "")
     self.assertEqual(event.when, "Sunday 31st of July 2016")
Esempio n. 10
0
 def setUp(self):
     self.user = User.objects.create_user('i', '*****@*****.**', 's3(r3t')
     calendar = CalendarPage(owner  = self.user,
                             slug  = "events",
                             title = "Events")
     Page.objects.get(slug='home').add_child(instance=calendar)
     calendar.save_revision().publish()
     event = SimpleEventPage(owner = self.user,
                             slug  = "tree-planting",
                             title = "Tree Planting",
                             date      = dt.date(2011,6,5),
                             time_from = dt.time(9,30),
                             time_to   = dt.time(11,0))
     calendar.add_child(instance=event)
     event.save_revision().publish()
Esempio n. 11
0
 def setUp(self):
     self.home = Page.objects.get(slug='home')
     self.user = User.objects.create_user('i', '*****@*****.**', 's3cr3t')
     self.calendar = SpecificCalendarPage(owner=self.user,
                                          slug="events",
                                          title="Events")
     self.home.add_child(instance=self.calendar)
     self.calendar.save_revision().publish()
     self.event = SimpleEventPage(owner=self.user,
                                  slug="agfest",
                                  title="AgFest",
                                  date=dt.date(2015, 6, 5),
                                  time_from=dt.time(11),
                                  time_to=dt.time(17, 30))
     self.calendar.add_child(instance=self.event)
     self.event.save_revision().publish()
Esempio n. 12
0
 def setUp(self):
     translation.activate('fr')
     self.user = User.objects.create_superuser('i', '*****@*****.**', 's3(r3t')
     calendar = CalendarPage(owner=self.user,
                             slug="calendrier",
                             title="Calendrier")
     Page.objects.get(slug='home').add_child(instance=calendar)
     calendar.save_revision().publish()
     event = SimpleEventPage(owner=self.user,
                             slug="plantation-d-arbres",
                             title="Plantation d'arbres",
                             date=dt.date(2011, 6, 5),
                             time_from=dt.time(9, 30),
                             time_to=dt.time(11, 0))
     calendar.add_child(instance=event)
     event.save_revision().publish()
Esempio n. 13
0
 def setUp(self):
     self.home = Page.objects.get(slug='home')
     self.user = User.objects.create_user('i', '*****@*****.**', 's3cr3t')
     self.calendar = SpecificCalendarPage(owner=self.user,
                                          slug="events",
                                          title="Events")
     self.home.add_child(instance=self.calendar)
     self.calendar.save_revision().publish()
     self.event = SimpleEventPage(owner=self.user,
                                  slug="pet-show",
                                  title="Pet Show",
                                  date=dt.date(1987, 6, 5),
                                  time_from=dt.time(11),
                                  time_to=dt.time(17, 30),
                                  tz=pytz.timezone("Australia/Sydney"))
     self.calendar.add_child(instance=self.event)
     self.event.save_revision().publish()
Esempio n. 14
0
 def testLoginAuth(self):
     LOGIN = PageViewRestriction.LOGIN
     bee = SimpleEventPage(owner=self.user,
                           slug="bee",
                           title="Working Bee",
                           date=dt.date(2013, 3, 30),
                           time_from=dt.time(10))
     self.calendar.add_child(instance=bee)
     bee.save_revision().publish()
     PageViewRestriction.objects.create(restriction_type=LOGIN, page=bee)
     self.assertEqual(list(SimpleEventPage.events.all()), [self.event, bee])
     self.assertFalse(bee.isAuthorized(None))
     request = RequestFactory().get("/test")
     request.user = AnonymousUser()
     request.session = {}
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event])
     request.user = self.user
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event, bee])
Esempio n. 15
0
 def testPasswordAuth(self):
     PASSWORD = PageViewRestriction.PASSWORD
     KEY = PageViewRestriction.passed_view_restrictions_session_key
     meeting = SimpleEventPage(owner=self.user,
                               slug="club-meet",
                               title="Club Meeting",
                               date=dt.date(2009, 10, 21))
     self.calendar.add_child(instance=meeting)
     meeting.save_revision().publish()
     restriction = PageViewRestriction.objects.create(
         restriction_type=PASSWORD, password="******", page=meeting)
     self.assertEqual(list(SimpleEventPage.events.all()),
                      [self.event, meeting])
     request = RequestFactory().get("/test")
     request.user = self.user
     request.session = {}
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event])
     request.session[KEY] = [restriction.id]
     self.assertEqual(list(SimpleEventPage.events.auth(request)),
                      [self.event, meeting])
Esempio n. 16
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)