def setUp(self):
     self.fixture = fixtures.ProjectFixture()
     service_provider = marketplace_factories.ServiceProviderFactory(
         customer=self.fixture.customer)
     google_credentials = google_factories.GoogleCredentialsFactory(
         service_provider=service_provider)
     self.url = factories.GoogleCredentialsFactory.get_url(
         google_credentials)
Ejemplo n.º 2
0
 def setUp(self):
     self.fixture = structure_fixtures.CustomerFixture()
     self.service_provider = marketplace_factories.ServiceProviderFactory(
         customer=self.fixture.customer)
     self.credentials = factories.GoogleCredentialsFactory(
         service_provider=self.service_provider,
         calendar_token='calendar_token',
         calendar_refresh_token='calendar_refresh_token',
     )
     self.url = factories.GoogleCredentialsFactory.get_authorize_url(
         self.credentials)
Ejemplo n.º 3
0
    def test_user_can_sync_bookings_to_calendar(self, user):
        service_provider = marketplace_factories.ServiceProviderFactory(
            customer=self.offering.customer)
        google_factories.GoogleCredentialsFactory(
            service_provider=service_provider,
            calendar_token='calendar_token',
            calendar_refresh_token='calendar_refresh_token',
        )

        self.client.force_authenticate(getattr(self.fixture, user))
        response = self.client.post(
            f'/api/marketplace-bookings/{self.offering.uuid.hex}/google_calendar_sync/'
        )
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Ejemplo n.º 4
0
    def test_bookings_sync(self, mock_build):
        mock_build().events().list().execute().get.return_value = []
        service_provider = marketplace_factories.ServiceProviderFactory(
            customer=self.offering.customer)
        google_factories.GoogleCredentialsFactory(
            service_provider=service_provider)
        sync_bookings = calendar.SyncBookings(self.offering)

        need_to_add, need_to_delete, need_to_update = sync_bookings.get_bookings(
        )
        self.assertEqual(len(need_to_add), 1)
        self.assertEqual(need_to_add[0].id, self.schedules[1]['id'])
        self.assertEqual(len(need_to_delete), 0)
        self.assertEqual(len(need_to_update), 0)

        mock_build().events().list().execute().get.return_value = [{
            'start': {
                'dateTime': self.schedules[1]['start']
            },
            'end': {
                'dateTime': self.schedules[1]['end']
            },
            'id':
            self.schedules[1]['id'],
        }]

        self.resource_2.attributes['schedules'][0][
            'start'] = '2020-03-02T02:00:00+03:00'
        self.resource_2.save()
        need_to_add, need_to_delete, need_to_update = sync_bookings.get_bookings(
        )
        self.assertEqual(len(need_to_add), 0)
        self.assertEqual(len(need_to_delete), 0)
        self.assertEqual(len(need_to_update), 1)
        self.assertEqual(need_to_update[0].id, self.schedules[1]['id'])

        self.resource_2.attributes['schedules'][0][
            'start'] = '2020-02-02T02:00:00+03:00'
        self.resource_2.save()
        need_to_add, need_to_delete, need_to_update = sync_bookings.get_bookings(
        )
        self.assertEqual(len(need_to_add), 0)
        self.assertEqual(len(need_to_delete), 1)
        self.assertEqual(need_to_delete.pop(), self.schedules[1]['id'])
        self.assertEqual(len(need_to_update), 0)