예제 #1
0
class EthernetNetworksTest(TestCase):
    def setUp(self):
        self.host = '127.0.0.1'
        self.connection = connection(self.host)
        self._ethernet_networks = EthernetNetworks(self.connection)

    @mock.patch.object(ResourceClient, 'get_all')
    def test_get_all_called_once(self, mock_get_all):
        filter = 'name=TestName'
        sort = 'name:ascending'

        self._ethernet_networks.get_all(2, 500, filter, sort)

        mock_get_all.assert_called_once_with(2, 500, filter=filter, sort=sort)

    @mock.patch.object(ResourceClient, 'create')
    def test_create_should_use_given_values(self, mock_create):
        resource = {
            'vlanId': 10,
            'name': 'OneViewSDK Test Ethernet Network',
            "ethernetNetworkType": "Tagged",
            "purpose": "Management",
            "connectionTemplateUri": None,
            "smartLink": False,
            "privateNetwork": False
        }
        resource_rest_call = resource.copy()
        mock_create.return_value = {}

        self._ethernet_networks.create(resource, 12)
        mock_create.assert_called_once_with(
            resource_rest_call,
            timeout=12,
            default_values=self._ethernet_networks.DEFAULT_VALUES)

    @mock.patch.object(ResourceClient, 'create')
    def test_create_should_use_default_values(self, mock_create):
        resource = {
            'name': 'OneViewSDK Test Ethernet Network',
        }

        mock_create.return_value = {}

        self._ethernet_networks.create(resource)

        mock_create.assert_called_once_with(
            resource,
            timeout=-1,
            default_values=self._ethernet_networks.DEFAULT_VALUES)

    @mock.patch.object(ResourceClient, 'create')
    @mock.patch.object(ResourceClient, 'get_all')
    def test_create_bulk(self, mock_get_all, mock_create):
        resource = {
            'vlanIdRange': '1-10',
            'purpose': 'General',
            'namePrefix': 'TestNetwork',
            'smartLink': False,
            'privateNetwork': False,
            'bandwidth': {
                'maximumBandwidth': 10000,
                'typicalBandwidth': 2000
            }
        }
        resource_rest_call = resource.copy()
        mock_create.return_value = {}
        mock_get_all.return_value = []

        self._ethernet_networks.create_bulk(resource, 27)

        mock_create.assert_called_once_with(
            resource_rest_call,
            uri='/rest/ethernet-networks/bulk',
            timeout=27,
            default_values=self._ethernet_networks.BULK_DEFAULT_VALUES)
        mock_get_all.assert_called_once_with(
            0,
            -1,
            filter='"\'name\' matches \'TestNetwork\\_%\'"',
            sort='vlanId:ascending')

    @mock.patch.object(ResourceClient, 'update')
    def test_update_should_use_given_values(self, mock_update):
        resource = {
            'name': 'OneViewSDK Test Ethernet Network',
            'smartLink': False,
            'connectionTemplateUri': None,
            'vlanId': None,
            'privateNetwork': True,
            'ethernetNetworkType': 'Untagged',
            'purpose': 'General'
        }
        resource_rest_call = resource.copy()
        mock_update.return_value = {}

        self._ethernet_networks.update(resource, timeout=60)
        mock_update.assert_called_once_with(
            resource_rest_call,
            timeout=60,
            default_values=self._ethernet_networks.DEFAULT_VALUES)

    @mock.patch.object(ResourceClient, 'update')
    def test_update_should_use_default_values(self, mock_update):
        resource = {
            'name': 'OneViewSDK Test Ethernet Network',
        }

        mock_update.return_value = {}

        self._ethernet_networks.update(resource)

        mock_update.assert_called_once_with(
            resource,
            timeout=-1,
            default_values=self._ethernet_networks.DEFAULT_VALUES)

    @mock.patch.object(ResourceClient, 'delete')
    def test_delete_called_once(self, mock_delete):
        id = 'ad28cf21-8b15-4f92-bdcf-51cb2042db32'
        self._ethernet_networks.delete(id, force=False, timeout=-1)

        mock_delete.assert_called_once_with(id, force=False, timeout=-1)

    @mock.patch.object(ResourceClient, 'get_by')
    def test_get_by_called_once(self, mock_get_by):
        self._ethernet_networks.get_by('name',
                                       'OneViewSDK Test Ethernet Network')

        mock_get_by.assert_called_once_with(
            'name', 'OneViewSDK Test Ethernet Network')

    @mock.patch.object(ResourceClient, 'get')
    def test_get_called_once(self, mock_get):
        self._ethernet_networks.get('3518be0e-17c1-4189-8f81-83f3724f6155')

        mock_get.assert_called_once_with(
            '3518be0e-17c1-4189-8f81-83f3724f6155')

    @mock.patch.object(ResourceClient, 'get')
    def test_get_with_uri_called_once(self, mock_get):
        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155'
        self._ethernet_networks.get(uri)

        mock_get.assert_called_once_with(uri)

    @mock.patch.object(ResourceClient, 'get')
    def test_get_associated_uplink_groups_uri_called_once_with_id(
            self, mock_get):
        self._ethernet_networks.get_associated_uplink_groups(
            '3518be0e-17c1-4189-8f81-83f3724f6155')
        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedUplinkGroups'

        mock_get.assert_called_once_with(uri)

    @mock.patch.object(ResourceClient, 'get')
    def test_get_associated_uplink_groups_uri_called_once_with_uri(
            self, mock_get):
        self._ethernet_networks.get_associated_uplink_groups(
            '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155')
        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedUplinkGroups'

        mock_get.assert_called_once_with(uri)

    @mock.patch.object(ResourceClient, 'get')
    def test_get_associated_profiles_called_once_with_id(self, mock_get):
        self._ethernet_networks.get_associated_profiles(
            '3518be0e-17c1-4189-8f81-83f3724f6155')
        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedProfiles'

        mock_get.assert_called_once_with(uri)

    @mock.patch.object(ResourceClient, 'get')
    def test_get_associated_profiles_called_once_with_uri(self, mock_get):
        self._ethernet_networks.get_associated_profiles(
            '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155')
        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedProfiles'

        mock_get.assert_called_once_with(uri)

    def __mock_enet_gel_all(self):
        return [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_3',
                'vlanId': 3
            },
            {
                'name': 'TestNetwork_4',
                'vlanId': 4
            },
            {
                'name': 'TestNetwork_5',
                'vlanId': 5
            },
            {
                'name': 'TestNetwork_5',
                'vlanId': 6
            },
            {
                'name': 'TestNetwork_7',
                'vlanId': 7
            },
            {
                'name': 'TestNetwork_8',
                'vlanId': 8
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_range(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_3',
                'vlanId': 3
            },
            {
                'name': 'TestNetwork_4',
                'vlanId': 4
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '1-4')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_value(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '2')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_value_and_one_range(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '2, 9-10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_multiple_values(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '9,10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_multiple_ranges(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_5',
                'vlanId': 6
            },
            {
                'name': 'TestNetwork_7',
                'vlanId': 7
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '6-7,9-10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(ResourceClient, 'patch')
    def test_patch_should_use_user_defined_values(self, mock_patch):
        mock_patch.return_value = {}

        self._ethernet_networks.patch('/rest/fake/ethernet123', 'replace',
                                      '/scopeUris', ['/rest/fake/scope123'], 1)
        mock_patch.assert_called_once_with('/rest/fake/ethernet123',
                                           'replace',
                                           '/scopeUris',
                                           ['/rest/fake/scope123'],
                                           timeout=1)

    def test_dissociate_values_or_ranges_with_one_value(self):
        expected_result = [1, 2, 3, 4, 5]
        result = self._ethernet_networks.dissociate_values_or_ranges('5')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_multiple_values(self):
        expected_result = [6, 7, 9]
        result = self._ethernet_networks.dissociate_values_or_ranges('6,7,9')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_one_range(self):
        expected_result = [6, 7]
        result = self._ethernet_networks.dissociate_values_or_ranges('6-7')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_multiple_ranges(self):
        expected_result = [6, 7, 9, 10]
        result = self._ethernet_networks.dissociate_values_or_ranges(
            '6-7,9-10')
        self.assertEqual(result, expected_result)
예제 #2
0
class EthernetNetworksTest(TestCase):
    def setUp(self):
        self.host = '127.0.0.1'
        self.connection = connection(self.host)
        self._ethernet_networks = EthernetNetworks(self.connection)

    @mock.patch.object(ResourceHelper, 'get_all')
    def test_get_all_called_once(self, mock_get_all):
        filter = 'name=TestName'
        sort = 'name:ascending'

        self._ethernet_networks.get_all(2, 500, filter, sort)

        mock_get_all.assert_called_once_with(count=500,
                                             filter=filter,
                                             sort=sort,
                                             start=2)

    @mock.patch.object(ResourceHelper, 'create')
    def test_create_should_use_given_values(self, mock_create):
        resource = {
            'vlanId': 10,
            'name': 'OneViewSDK Test Ethernet Network',
            "ethernetNetworkType": "Tagged",
            "purpose": "Management",
            "connectionTemplateUri": None,
            "smartLink": False,
            "privateNetwork": False
        }
        resource_rest_call = resource.copy()
        resource_rest_call['type'] = 'ethernet-networkV4'
        mock_create.return_value = {}

        self._ethernet_networks.create(resource, timeout=12)
        mock_create.assert_called_once_with(resource_rest_call, None, 12, None,
                                            False)

    @mock.patch.object(ResourceHelper, 'create')
    @mock.patch.object(Resource, 'get_all')
    def test_create_bulk(self, mock_get_all, mock_create):
        resource = {
            'vlanIdRange': '1-10',
            'purpose': 'General',
            'namePrefix': 'TestNetwork',
            'smartLink': False,
            'privateNetwork': False,
            'bandwidth': {
                'maximumBandwidth': 10000,
                'typicalBandwidth': 2000
            }
        }
        resource_rest_call = resource.copy()
        resource_rest_call['type'] = 'bulk-ethernet-networkV1'

        mock_create.return_value = {}
        mock_get_all.return_value = []

        self._ethernet_networks.create_bulk(resource, 27)

        mock_create.assert_called_once_with(resource_rest_call,
                                            uri='/rest/ethernet-networks/bulk',
                                            timeout=27)
        mock_get_all.assert_called_once_with(
            filter='"\'name\' matches \'TestNetwork\\_%\'"',
            sort='vlanId:ascending')

    @mock.patch.object(Resource, 'update')
    def test_update_should_use_given_values(self, mock_update):
        resource = {
            'name': 'OneViewSDK Test Ethernet Network',
            'smartLink': False,
            'connectionTemplateUri': None,
            'vlanId': None,
            'privateNetwork': True,
            'ethernetNetworkType': 'Untagged',
            'purpose': 'General'
        }
        resource_rest_call = resource.copy()
        mock_update.return_value = {}

        self._ethernet_networks.update(resource, timeout=60)
        mock_update.assert_called_once_with(resource_rest_call, timeout=60)

    @mock.patch.object(Resource, 'update')
    def test_update_should_use_default_values(self, mock_update):
        resource = {
            'name': 'OneViewSDK Test Ethernet Network',
        }

        mock_update.return_value = {}

        self._ethernet_networks.update(resource)

        mock_update.assert_called_once_with(resource)

    @mock.patch.object(Resource, 'delete')
    def test_delete_called_once(self, mock_delete):
        id = 'ad28cf21-8b15-4f92-bdcf-51cb2042db32'
        self._ethernet_networks.delete(id, force=False, timeout=-1)

        mock_delete.assert_called_once_with(id, force=False, timeout=-1)

    @mock.patch.object(Resource, 'get_by')
    def test_get_by_called_once(self, mock_get_by):
        self._ethernet_networks.get_by('name',
                                       'OneViewSDK Test Ethernet Network')

        mock_get_by.assert_called_once_with(
            'name', 'OneViewSDK Test Ethernet Network')

    @mock.patch.object(ResourceHelper, 'do_get')
    def test_get_associated_uplink_groups_uri_called_once_with_uri(
            self, mock_get):
        self._ethernet_networks.data = {
            "name": "name",
            "uri":
            "/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155"
        }
        self._ethernet_networks.get_associated_uplink_groups()

        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedUplinkGroups'

        mock_get.assert_called_once_with(uri)

    @mock.patch.object(ResourceHelper, 'do_get')
    def test_get_associated_profiles_called_once_with_uri(self, mock_get):
        self._ethernet_networks.data = {
            "name": "name",
            "uri":
            "/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155"
        }
        self._ethernet_networks.get_associated_profiles()

        uri = '/rest/ethernet-networks/3518be0e-17c1-4189-8f81-83f3724f6155/associatedProfiles'

        mock_get.assert_called_once_with(uri)

    def __mock_enet_gel_all(self):
        return [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_3',
                'vlanId': 3
            },
            {
                'name': 'TestNetwork_4',
                'vlanId': 4
            },
            {
                'name': 'TestNetwork_5',
                'vlanId': 5
            },
            {
                'name': 'TestNetwork_5',
                'vlanId': 6
            },
            {
                'name': 'TestNetwork_7',
                'vlanId': 7
            },
            {
                'name': 'TestNetwork_8',
                'vlanId': 8
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_range(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_3',
                'vlanId': 3
            },
            {
                'name': 'TestNetwork_4',
                'vlanId': 4
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '1-4')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_value(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_1',
                'vlanId': 1
            },
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '2')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_one_value_and_one_range(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_2',
                'vlanId': 2
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '2, 9-10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_multiple_values(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '9,10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(EthernetNetworks, 'get_all')
    def test_get_bulk_with_multiple_ranges(self, mock_get_all):
        mock_get_all.return_value = self.__mock_enet_gel_all()

        expected_result = [
            {
                'name': 'TestNetwork_5',
                'vlanId': 6
            },
            {
                'name': 'TestNetwork_7',
                'vlanId': 7
            },
            {
                'name': 'TestNetwork_9',
                'vlanId': 9
            },
            {
                'name': 'TestNetwork_10',
                'vlanId': 10
            },
        ]

        result = self._ethernet_networks.get_range('TestNetwork', '6-7,9-10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(ResourcePatchMixin, 'patch_request')
    @mock.patch.object(Resource, 'get_by')
    def test_patch_should_use_user_defined_values(self, mock_get_by,
                                                  mock_patch):
        mock_patch.return_value = {}
        self._ethernet_networks.data = {
            "name": "test name",
            "uri": "/rest/test"
        }
        self._ethernet_networks.patch('replace', '/scopeUris',
                                      ['/rest/fake/scope123'], 1)
        mock_patch.assert_called_once_with('/rest/test',
                                           body=[{
                                               u'path':
                                               '/scopeUris',
                                               u'value':
                                               ['/rest/fake/scope123'],
                                               u'op':
                                               'replace'
                                           }],
                                           custom_headers=1,
                                           timeout=-1)

    def test_dissociate_values_or_ranges_with_one_value(self):
        expected_result = [1, 2, 3, 4, 5]
        result = self._ethernet_networks.dissociate_values_or_ranges('5')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_multiple_values(self):
        expected_result = [6, 7, 9]
        result = self._ethernet_networks.dissociate_values_or_ranges('6,7,9')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_one_range(self):
        expected_result = [6, 7]
        result = self._ethernet_networks.dissociate_values_or_ranges('6-7')
        self.assertEqual(result, expected_result)

    def test_dissociate_values_or_ranges_with_multiple_ranges(self):
        expected_result = [6, 7, 9, 10]
        result = self._ethernet_networks.dissociate_values_or_ranges(
            '6-7,9-10')
        self.assertEqual(result, expected_result)

    @mock.patch.object(ResourceHelper, 'create')
    @mock.patch.object(Resource, 'get_all')
    def test_delete_bulk(self, mock_get_all, mock_create):
        resource = {
            "networkUris": [
                "/rest/ethernet-networks/e2f0031b-52bd-4223-9ac1-d91cb519d548",
                "/rest/ethernet-networks/f2f0031b-52bd-4223-9ac1-d91cb519d549",
                "/rest/ethernet-networks/02f0031b-52bd-4223-9ac1-d91cb519d54a"
            ]
        }
        resource_rest_call = resource.copy()

        mock_create.return_value = {}
        mock_get_all.return_value = []

        self._ethernet_networks.delete_bulk(resource, 27)

        mock_create.assert_called_once_with(
            resource_rest_call,
            uri='/rest/ethernet-networks/bulk-delete',
            timeout=27)