コード例 #1
0
    def test_event(self):
        """Given an event, Google Calendar payload contains event information"""

        event = factory.event()
        event.save()

        with mock.patch('census.google_calendar.get_service',
                        return_value=self.mock_service):
            google_calendar.google_publish_event(event)

        self.mock_service.events.assert_called_with()
        self.mock_events.insert.assert_called_once()
        payload = self.mock_events.insert.call_args[1]['body']

        self.assertEqual(payload['summary'], event.title)
        self.assertTrue(payload['description'].startswith(event.description))
        self.assertEqual(payload['start']['dateTime'],
                         event.start_datetime.isoformat())
        self.assertEqual(payload['start']['timeZone'], 'America/Los_Angeles')
        self.assertEqual(payload['end']['dateTime'],
                         event.end_datetime.isoformat())
        self.assertEqual(payload['end']['timeZone'], 'America/Los_Angeles')
        self.assertEqual(payload['visibility'], 'public')
        self.assertFalse('recurrences' in payload)

        google_events = GoogleEvent.objects.all()
        assert len(google_events) == 1

        google_event = google_events[0]
        self.assertEqual(google_event.google_calendar_id,
                         self.expected_response['id'])
        self.assertEqual(google_event.event.id, event.id)
コード例 #2
0
 def setUp(self):
     self.url = "/pending/"
     self.client = Client()
     self.pending_event = factory.event(
         approval_status=constants.EventApprovalStatus.PENDING.name,
         recurrences=recurrence.Recurrence(rrules=[recurrence.Rule(recurrence.DAILY)]),
     )
     self.pending_event.save()
コード例 #3
0
 def setUp(self):
     self.url = '/'
     self.client = Client()
     self.current_date = datetime.now()
     self.localized_time = los_angeles.localize(self.current_date)
     self.approved_event = factory.event(start_datetime=self.localized_time,
                                         end_datetime=self.localized_time +
                                         timedelta(hours=2))
     self.approved_event.save()
コード例 #4
0
    def test_pending_events(self, mock_google_publish_event):
        """Given pending event, the event should not be published"""

        pending_event = factory.event(approval_status=constants.EventApprovalStatus.PENDING)
        pending_event.save()

        call_command('google_publish')

        mock_google_publish_event.assert_not_called()
コード例 #5
0
    def test_approved_events(self, mock_google_publish_event):
        """Given an approved event, the event should be published"""

        approved_event = factory.event(approval_status=constants.EventApprovalStatus.APPROVED)
        approved_event.save()

        call_command('google_publish')

        mock_google_publish_event.assert_called_with(approved_event)
コード例 #6
0
    def test_get_search_query(self):
        self.approved_event_two = factory.event(title="some title")
        self.approved_event_two.save()

        response = self.client.get(self.url, {'search': 'oak'})

        self.assertEqual(len(response.context['request'].events), 1)
        self.assertEqual(len(response.context['request'].events[0][1]), 1)
        self.assertEqual(response.context['request'].events[0][1][0]['title'],
                         self.approved_event.title)
コード例 #7
0
    def test_published_events(self, mock_google_publish_event):
        """Given a published event, the event should not be re-published"""

        event = factory.event()
        event.save()
        published_event = factory.google_event(event=event)
        published_event.save()

        call_command('google_publish')

        mock_google_publish_event.assert_not_called()
コード例 #8
0
    def test_pending_event(self):
        """Given a pending event, Google Calendar payload contains visibility private"""

        event = factory.event(approval_status=constants.EventApprovalStatus.PENDING)
        event.save()

        with mock.patch('census.google_calendar.get_service', return_value=self.mock_service):
            google_calendar.google_publish_event(event)

        self.mock_service.events.assert_called_with()
        self.mock_events.insert.assert_called_once()
        payload = self.mock_events.insert.call_args[1]['body']

        self.assertEqual(payload['visibility'], 'private')
コード例 #9
0
    def test_recurring_event(self):
        """Given a recurring event, Google Calendar payload contains recurrence"""

        event = factory.event(recurrences=recurrence.Recurrence(rrules=[recurrence.Rule(recurrence.DAILY)]))
        event.save()

        with mock.patch('census.google_calendar.get_service', return_value=self.mock_service):
            google_calendar.google_publish_event(event)

        self.mock_service.events.assert_called_with()
        self.mock_events.insert.assert_called_once()
        payload = self.mock_events.insert.call_args[1]['body']

        self.assertEqual(payload['recurrence'], ['RRULE:FREQ=DAILY'])
コード例 #10
0
 def setUp(self):
     self.url = "/approved/"
     self.client = Client()
     self.approved_event = factory.event(
         approval_status=constants.EventApprovalStatus.APPROVED)
     self.approved_event.save()
コード例 #11
0
 def setUp(self):
     self.url = "/pending/"
     self.client = Client()
     self.pending_event = factory.event(
         approval_status=constants.EventApprovalStatus.PENDING)
     self.pending_event.save()