コード例 #1
0
 def test_index(self, path, mock_vnf_list):
     req = fake_request.HTTPRequest.blank(path)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     expected_result = fakes.index_response(remove_attrs=[
         'softwareImages', 'checksum', 'userDefinedData'])
     self.assertEqual(expected_result, res_dict)
コード例 #2
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_get_package_vnfd_err(self,
                                              mock_nfvo_download_vnf_packages,
                                              mock_from_db_vnf_package,
                                              mock_save_vnf_package,
                                              mock_vnf_package, mock_get_by_id,
                                              mock_glance_store):

        # glance_store mock Settings
        mock_glance_store.return_value = 'location', 0, 'checksum',\
                                         'multihash', 'loc_meta'

        # vnf_package_vnfd mock Settings
        mock_get_by_id.side_effect = Exception

        # SyncVnfPackage.create_package
        vnf_package_info = vnfpkgm_fakes.index_response()[0]
        self.assertRaises(exc.HTTPInternalServerError,
                          sync.SyncVnfPackage.create_package, self.context,
                          vnf_package_info)

        # Check if a mock is called even once
        mock_nfvo_download_vnf_packages.assert_called()
        mock_from_db_vnf_package.assert_called()
        mock_save_vnf_package.assert_called()
        mock_vnf_package.assert_called()
        mock_get_by_id.assert_called()
        mock_glance_store.assert_called()
コード例 #3
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_package_vnfd_creation_successful(
            self, mock_upload_vnf_package_content,
            mock_nfvo_download_vnf_packages, mock_from_db_vnf_package,
            mock_save_vnf_package, mock_vnf_package, mock_get_by_id,
            mock_glance_store):

        # glance_store mock Settings
        mock_glance_store.return_value = 'location', 0, 'checksum',\
                                         'multihash', 'loc_meta'

        updates = {
            'additionalArtifacts': [{
                'artifactPath': 'sample1_file.yaml',
                'checksum': {
                    'hash': '53b504e608eef3d19a\
                            22413bf6ee72f42091fbb5213e6a876a3a22f6c3c94fe1',
                    'algorithm': 'SHA-256'
                }
            }, {
                'artifactPath': 'sample2_file.yaml',
                'checksum': {
                    'hash': '43b504e608eef3d19a\
                            22413bf6ee72f42091fbb5213e6a876a3a22f6c3c94fe1',
                    'algorithm': 'SHA-256'
                }
            }]
        }
        vnf_package_info = vnfpkgm_fakes.index_response(
            remove_attrs=['userDefinedData'], vnf_package_updates=updates)[0]

        exp_vnf_package_vnfd = \
            vnflcm_fakes.fake_vnf_package_vnfd_model_dict(**updates)
        mock_get_by_id.return_value = exp_vnf_package_vnfd

        vnf_package_vnfd = sync.SyncVnfPackage.create_package(
            self.context, vnf_package_info)

        # Expected value setting
        self.assertEqual(exp_vnf_package_vnfd.get('package_uuid'),
                         vnf_package_vnfd.get('package_uuid'))
        self.assertEqual(exp_vnf_package_vnfd.get('vnfd_id'),
                         vnf_package_vnfd.get('vnfd_id'))
        self.assertEqual(exp_vnf_package_vnfd.get('vnf_provider'),
                         vnf_package_vnfd.get('vnf_provider'))
        self.assertEqual(exp_vnf_package_vnfd.get('vnf_product_name'),
                         vnf_package_vnfd.get('vnf_product_name'))
        self.assertEqual(exp_vnf_package_vnfd.get('vnf_software_version'),
                         vnf_package_vnfd.get('vnf_software_version'))
        self.assertEqual(exp_vnf_package_vnfd.get('vnfd_version'),
                         vnf_package_vnfd.get('vnfd_version'))

        # Check if a mock is called even once
        mock_upload_vnf_package_content.assert_called()
        mock_nfvo_download_vnf_packages.assert_called()
        mock_from_db_vnf_package.assert_called()
        mock_save_vnf_package.assert_called()
        mock_vnf_package.assert_called()
        mock_get_by_id.assert_called()
        mock_glance_store.assert_called()
コード例 #4
0
 def test_index_attribute_selector_all_fields(self, mock_vnf_list):
     params = {'all_fields': ''}
     query = urllib.parse.urlencode(params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     expected_result = fakes.index_response()
     self.assertEqual(expected_result, res_dict)
コード例 #5
0
 def test_index_filter_attributes(self, filter_params, mock_vnf_list):
     """Test various attributes supported for filter parameter """
     query = urllib.parse.urlencode(filter_params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     expected_result = fakes.index_response(remove_attrs=[
         'softwareImages', 'checksum', 'userDefinedData'])
     self.assertEqual(expected_result, res_dict)
コード例 #6
0
 def test_index_attribute_selector_user_defined_data(self, mock_vnf_list):
     params = {'fields': 'userDefinedData/key1,userDefinedData/key2'}
     query = urllib.parse.urlencode(params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     expected_result = fakes.index_response(remove_attrs=[
         'checksum', 'softwareImages'])
     self.assertEqual(expected_result, res_dict)
コード例 #7
0
 def test_index_attribute_selector_exclude_fields(self, params,
         mock_vnf_list):
     query = urllib.parse.urlencode(params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     remove_attrs = [params['exclude_fields']]
     expected_result = fakes.index_response(remove_attrs=remove_attrs)
     self.assertEqual(expected_result, res_dict)
コード例 #8
0
 def test_index_filter_combination(self, mock_vnf_list):
     """Test multiple filter parameters separated by semicolon """
     params = {'filter': '(eq,vnfdId,dummy_vnfd_id);(eq,id,dummy_id)'}
     query = urllib.parse.urlencode(params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     expected_result = fakes.index_response(remove_attrs=[
         'softwareImages', 'checksum', 'userDefinedData'])
     self.assertEqual(expected_result, res_dict)
コード例 #9
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_package_vnfd_creation_package_create_err(
            self, mock_vnf_package):

        # vnf_package mock Settings
        mock_vnf_package.side_effect = Exception

        # SyncVnfPackage.create_package
        vnf_package_info = vnfpkgm_fakes.index_response()[0]
        self.assertRaises(exc.HTTPInternalServerError,
                          sync.SyncVnfPackage.create_package, self.context,
                          vnf_package_info)

        # Check if a mock is called even once
        mock_vnf_package.assert_called()
コード例 #10
0
    def test_index_attribute_selector_fields(self, params, mock_vnf_list):
        """Test valid attribute names with fields parameter

        We can specify complex attributes in fields. Hence the data only
        contains such attributes.
        """
        complex_attrs = ['softwareImages', 'checksum', 'userDefinedData']
        query = urllib.parse.urlencode(params)
        req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
                query)
        mock_vnf_list.return_value = fakes.return_vnf_package_list()
        res_dict = self.controller.index(req)
        remove_attrs = [x for x in complex_attrs if x != params['fields']]
        expected_result = fakes.index_response(remove_attrs=remove_attrs)
        self.assertEqual(expected_result, res_dict)
コード例 #11
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_package_vnfd_creation_exception(
            self, mock_nfvo_download_vnf_packages, mock_from_db_vnf_package,
            mock_vnf_package):

        # VnfPackageRequest.download_vnf_packages mock Settings
        mock_nfvo_download_vnf_packages.side_effect = Exception

        # SyncVnfPackage.create_package
        vnf_package_info = vnfpkgm_fakes.index_response()[0]
        self.assertRaises(exc.HTTPInternalServerError,
                          sync.SyncVnfPackage.create_package, self.context,
                          vnf_package_info)

        # Check if a mock is called even once
        mock_vnf_package.assert_called()
        mock_from_db_vnf_package.assert_called()
        mock_nfvo_download_vnf_packages.assert_called()
コード例 #12
0
    def test_index_filter_valid_string_values(self, filter_params,
            mock_vnf_list):
        """Tests all the supported string values.

        For example:
        - values which are not enclosed in single quotes
        - values which are enclosed in single quotes
        - values having single quotes within them
        - values having round brackets in them
        """
        query = urllib.parse.urlencode(filter_params)
        req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
            query)
        mock_vnf_list.return_value = fakes.return_vnf_package_list()
        res_dict = self.controller.index(req)
        expected_result = fakes.index_response(remove_attrs=[
            'softwareImages', 'checksum', 'userDefinedData'])
        self.assertEqual(expected_result, res_dict)
コード例 #13
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_package_vnfd_creation_undefinedexcep(
            self, mock_nfvo_download_vnf_packages, mock_from_db_vnf_package,
            mock_vnf_package):

        # VnfPackageRequest.download_vnf_packages mock Settings
        mock_nfvo_download_vnf_packages.side_effect = \
            nfvo_client.UndefinedExternalSettingException(
                "Vnf package the external setting to 'base_url' undefined.")

        # SyncVnfPackage.create_package
        vnf_package_info = vnfpkgm_fakes.index_response()[0]
        self.assertRaises(exc.HTTPNotFound, sync.SyncVnfPackage.create_package,
                          self.context, vnf_package_info)

        # Check if a mock is called even once
        mock_vnf_package.assert_called()
        mock_from_db_vnf_package.assert_called()
        mock_nfvo_download_vnf_packages.assert_called()
コード例 #14
0
 def test_index_attribute_selector_nested_complex_attribute(self,
         mock_vnf_list):
     params = {'fields': 'softwareImages/checksum/algorithm,'
         'softwareImages/minRam'}
     query = urllib.parse.urlencode(params)
     req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
         query)
     mock_vnf_list.return_value = fakes.return_vnf_package_list()
     res_dict = self.controller.index(req)
     vnf_package_updates = {
         'softwareImages': [{
             'minRam': 0,
             'checksum': {'algorithm': 'fake-algorithm'}
         }]
     }
     expected_result = fakes.index_response(remove_attrs=[
         'checksum', 'userDefinedData'],
         vnf_package_updates=vnf_package_updates)
     self.assertEqual(expected_result, res_dict)
コード例 #15
0
ファイル: test_sync_resource.py プロジェクト: vutuong/tacker
    def test_package_and_package_vnfd_creation_falieddownloadexcep(
            self, mock_nfvo_download_vnf_packages, mock_from_db_vnf_package,
            mock_vnf_package):

        # VnfPackageRequest.download_vnf_packages mock Settings
        vnf_package_zip = ''
        mock_nfvo_download_vnf_packages.side_effect = \
            nfvo_client.FaliedDownloadContentException(
                "Failed response content, vnf_package_zip={}".format(
                    vnf_package_zip))

        # SyncVnfPackage.create_package
        vnf_package_info = vnfpkgm_fakes.index_response()[0]
        self.assertRaises(exc.HTTPInternalServerError,
                          sync.SyncVnfPackage.create_package, self.context,
                          vnf_package_info)

        # Check if a mock is called even once
        mock_vnf_package.assert_called()
        mock_from_db_vnf_package.assert_called()
        mock_nfvo_download_vnf_packages.assert_called()
コード例 #16
0
    def test_index_attribute_selector_user_defined_data_combination(self,
            mock_vnf_list):
        """Query user defined data with fields parameter

        This test queries combination of user defined data. i.e. fields of
        different complex attributes.
        """
        params = {
            'fields': 'userDefinedData/key1,softwareImages/userMetadata/key3',
        }
        query = urllib.parse.urlencode(params)
        req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' +
            query)
        mock_vnf_list.return_value = fakes.return_vnf_package_list()
        res_dict = self.controller.index(req)
        vnf_package_updates = {
            'userDefinedData': {'key1': 'value1'},
            'softwareImages': [{'userMetadata': {'key3': 'value3'}}]
        }
        expected_result = fakes.index_response(remove_attrs=[
            'checksum'], vnf_package_updates=vnf_package_updates)
        self.assertEqual(expected_result, res_dict)