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)
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()
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()
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()
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)
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)
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()
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')
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'])
def setUp(self): self.url = "/approved/" self.client = Client() self.approved_event = factory.event( approval_status=constants.EventApprovalStatus.APPROVED) self.approved_event.save()
def setUp(self): self.url = "/pending/" self.client = Client() self.pending_event = factory.event( approval_status=constants.EventApprovalStatus.PENDING) self.pending_event.save()