Example #1
0
 def test_purge_with_exception(self):
     provider_service_id = uuid.uuid1()
     controller = services.ServiceController(self.driver)
     exception = fastly.FastlyError(Exception('ding'))
     controller.client.purge_service.side_effect = exception
     resp = controller.purge(provider_service_id, hard=True, purge_url='/*')
     self.assertIn('error', resp[self.driver.provider_name])
Example #2
0
    def test_delete(self, mock_connection, mock_service, mock_client,
                    mock_driver):
        driver = mock_driver()
        driver.provider_name = 'Fastly'
        service_name = 'whatsitnamed'

        # instantiate
        controller = services.ServiceController(driver)

        # mock.patch return values
        service = mock_service()
        service.id = '1234'
        controller.client.get_service_by_name.return_value = service

        # test exception
        exception = fastly.FastlyError(Exception('ding'))
        controller.client.delete_service.side_effect = exception
        resp = controller.delete('wrongname')

        self.assertIn('error', resp[driver.provider_name])

        # clear run
        controller.client.reset_mock()
        controller.client.delete_service.side_effect = None

        resp = controller.delete(service_name)
        controller.client.get_service_by_name.assert_called_once_with(
            service_name)
        controller.client.delete_service.assert_called_once_with(service.id)
        self.assertIn('domain', resp[driver.provider_name])
Example #3
0
    def test_delete_with_exception(self):
        provider_service_id = uuid.uuid1()

        # instantiate
        controller = services.ServiceController(self.driver)

        # mock.patch return values
        service = self.mock_service()
        service.id = uuid.uuid1()
        controller.client.get_service_by_name.return_value = service

        # test exception
        controller.client.delete_service.side_effect = None
        service_id = str(uuid.uuid4())
        current_domain = str(uuid.uuid1())
        domains_old = domain.Domain(domain=current_domain)
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = Service(service_id=service_id,
                              name='poppy cdn service',
                              domains=[domains_old],
                              origins=[current_origin],
                              flavor_id='cdn',
                              project_id=str(uuid.uuid4()))

        exception = fastly.FastlyError(Exception('ding'))
        controller.client.delete_service.side_effect = exception
        resp = controller.delete(service_obj, provider_service_id)

        self.assertIn('error', resp[self.driver.provider_name])
Example #4
0
    def test_create_with_create_service_exception(self, service_json):
        # ASSERTIONS
        # create_service
        service_obj = service.load_from_json(service_json)

        self.controller.client.create_service.side_effect = fastly.FastlyError(
            Exception('Creating service failed.'))
        resp = self.controller.create(service_obj)
        self.assertIn('error', resp[self.driver.provider_name])
Example #5
0
    def test_create_with_activate_version_exception(self, service_json):
        self.controller.client.reset_mock()
        self.controller.client.create_backend.side_effect = None
        service_obj = service.load_from_json(service_json)

        self.controller.client.active_version.side_effect = fastly.FastlyError(
            Exception('Active_version failed.'))
        resp = self.controller.create(service_obj)
        self.assertIn('error', resp[self.driver.provider_name])
Example #6
0
 def test_update_fastly_exception(self, service_json):
     provider_service_id = uuid.uuid1()
     controller = services.ServiceController(self.driver)
     controller.client.list_versions.return_value = [self.version]
     controller.client.get_service_details.side_effect = (
         fastly.FastlyError('Mock -- Fastly error!'))
     service_obj = service.load_from_json(service_json)
     resp = controller.update(provider_service_id, service_obj)
     self.assertIn('error', resp[self.driver.provider_name])
Example #7
0
    def test_create_with_create_backend_exception(self, service_json):
        self.controller.client.reset_mock()
        self.controller.client.create_domain.side_effect = None
        service_obj = service.load_from_json(service_json)

        # create backends
        self.controller.client.create_backend.side_effect = fastly.FastlyError(
            Exception('Creating backend failed.'))
        resp = self.controller.create(service_obj)
        self.assertIn('error', resp[self.driver.provider_name])
Example #8
0
    def test_delete_with_exception(self):
        provider_service_id = uuid.uuid1()

        # instantiate
        controller = services.ServiceController(self.driver)

        # mock.patch return values
        service = self.mock_service()
        service.id = uuid.uuid1()
        controller.client.get_service_by_name.return_value = service

        # test exception
        exception = fastly.FastlyError(Exception('ding'))
        controller.client.delete_service.side_effect = exception
        resp = controller.delete(provider_service_id)

        self.assertIn('error', resp[self.driver.provider_name])
Example #9
0
    def test_create(self, service_json, mock_connection, mock_service,
                    mock_version, mock_controllerclient, mock_driver):
        driver = mock_driver()
        driver.provider_name = 'Fastly'

        # instantiate
        controller = services.ServiceController(driver)

        service_name = 'scarborough'
        mock_service_id = '%020x' % random.randrange(16**20)
        mock_create_version_resp = {
            u'service_id': mock_service_id,
            u'number': 5
        }

        service = mock_service()
        service.id = mock_service_id
        version = mock_version(controller.client, mock_create_version_resp)
        controller.client.create_service.return_value = service
        controller.client.create_version.return_value = version

        # ASSERTIONS
        # create_service
        controller.client.create_service.side_effect = fastly.FastlyError(
            Exception('Creating service failed.'))
        resp = controller.create(service_name, service_json)
        self.assertIn('error', resp[driver.provider_name])

        controller.client.reset_mock()
        controller.client.create_service.side_effect = None

        # create_version
        controller.client.create_version.side_effect = fastly.FastlyError(
            Exception('Creating version failed.'))
        resp = controller.create(service_name, service_json)
        self.assertIn('error', resp[driver.provider_name])

        controller.client.reset_mock()
        controller.client.create_version.side_effect = None

        # create domains
        controller.client.create_domain.side_effect = fastly.FastlyError(
            Exception('Creating domains failed.'))
        resp = controller.create(service_name, service_json)
        self.assertIn('error', resp[driver.provider_name])

        controller.client.reset_mock()
        controller.client.create_domain.side_effect = None

        # create backends
        controller.client.create_backend.side_effect = fastly.FastlyError(
            Exception('Creating backend failed.'))
        resp = controller.create(service_name, service_json)
        self.assertIn('error', resp[driver.provider_name])

        controller.client.reset_mock()
        controller.client.create_backend.side_effect = None

        # test a general exception
        controller.client.create_service.side_effect = Exception(
            'Wild exception occurred.')
        resp = controller.create(service_name, service_json)
        self.assertIn('error', resp[driver.provider_name])

        # finally, a clear run
        controller.client.reset_mock()
        controller.client.create_service.side_effect = None

        resp = controller.create(service_name, service_json)

        controller.client.create_service.assert_called_once_with(
            controller.current_customer.id, service_name)

        controller.client.create_version.assert_called_once_with(service.id)

        controller.client.create_domain.assert_any_call(
            service.id, version.number, service_json['domains'][0]['domain'])

        controller.client.create_domain.assert_any_call(
            service.id, version.number, service_json['domains'][1]['domain'])

        controller.client.create_backend.assert_has_any_call(
            service.id, 1, service_json['origins'][0]['origin'],
            service_json['origins'][0]['origin'],
            service_json['origins'][0]['ssl'],
            service_json['origins'][0]['port'])

        self.assertIn('domain', resp[driver.provider_name])
Example #10
0
    def test_get_service_details_error(self):
        error = fastly.FastlyError('DIMMM')
        self.controller.client.get_service_by_name.side_effect = error
        resp = self.controller.get('rror-service')

        self.assertIn('error', resp[self.driver.provider_name])