class OpenstackTestCase(TestCase): ''' Test case for openstack ''' PRIVATE_IPS = ['0.0.0.0', '1.1.1.1', '2.2.2.2'] @patch('salt.cloud.clouds.openstack.show_instance', MagicMock(return_value={ 'state': True, 'public_ips': [], 'private_ips': PRIVATE_IPS })) @patch('salt.cloud.clouds.openstack.rackconnect', MagicMock(return_value=False)) @patch('salt.cloud.clouds.openstack.managedcloud', MagicMock(return_value=False)) @patch('salt.cloud.clouds.openstack.preferred_ip', _preferred_ip(PRIVATE_IPS, ['0.0.0.0'])) @patch('salt.cloud.clouds.openstack.ssh_interface', MagicMock(return_value=False)) def test_query_node_data_filter_preferred_ip_addresses(self): ''' Test if query node data is filtering out unpreferred IP addresses. ''' openstack.NodeState = MagicMock() # pylint: disable=blacklisted-unmocked-patching openstack.NodeState.RUNNING = True vm = {'name': None} data = MagicMock() data.public_ips = [] with patch('salt.utils.cloud.is_public_ip', MagicMock(return_value=True)): assert openstack._query_node_data( vm, data, False, MagicMock()).public_ips == ['0.0.0.0']
class NovaTestCase(TestCase): ''' Test case for openstack ''' PRIVATE_IPS = ['0.0.0.0', '1.1.1.1', '2.2.2.2'] @patch('salt.cloud.clouds.nova.show_instance', MagicMock(return_value={'state': 'ACTIVE', 'public_ips': [], 'addresses': [], 'private_ips': PRIVATE_IPS})) @patch('salt.cloud.clouds.nova.rackconnect', MagicMock(return_value=False)) @patch('salt.cloud.clouds.nova.rackconnectv3', MagicMock(return_value={'mynet': ['1.1.1.1']})) @patch('salt.cloud.clouds.nova.cloudnetwork', MagicMock(return_value=False)) @patch('salt.cloud.clouds.nova.managedcloud', MagicMock(return_value=False)) @patch('salt.cloud.clouds.nova.preferred_ip', _preferred_ip(PRIVATE_IPS, ['0.0.0.0'])) @patch('salt.cloud.clouds.nova.ssh_interface', MagicMock(return_value='public_ips')) def test_query_node_data_filter_preferred_ip_addresses(self): ''' Test if query node data is filtering out unpreferred IP addresses. ''' vm = {'name': None} data = MagicMock() data.public_ips = [] assert nova._query_node_data(vm, data, MagicMock()).public_ips == ['0.0.0.0']
def test_query_node_data_filter_preferred_ip_addresses(self): """ Test if query node data is filtering out unpreferred IP addresses. """ zero_ip = "0.0.0.0" private_ips = [zero_ip, "1.1.1.1", "2.2.2.2"] vm = {"name": None} data = MagicMock() data.public_ips = [] # pylint: disable=blacklisted-unmocked-patching dimensiondata.NodeState = MagicMock() # pylint: enable=blacklisted-unmocked-patching dimensiondata.NodeState.RUNNING = True with patch( "salt.cloud.clouds.dimensiondata.show_instance", MagicMock( return_value={ "state": True, "name": "foo", "public_ips": [], "private_ips": private_ips, }), ): with patch( "salt.cloud.clouds.dimensiondata.preferred_ip", _preferred_ip(private_ips, [zero_ip]), ): with patch( "salt.cloud.clouds.dimensiondata.ssh_interface", MagicMock(return_value="private_ips"), ): self.assertEqual( dimensiondata._query_node_data(vm, data).public_ips, [zero_ip])
def test_query_node_data_filter_preferred_ip_addresses(self): ''' Test if query node data is filtering out unpreferred IP addresses. ''' zero_ip = '0.0.0.0' private_ips = [zero_ip, '1.1.1.1', '2.2.2.2'] vm = {'name': None} data = MagicMock() data.public_ips = [] dimensiondata.NodeState = MagicMock() # pylint: disable=blacklisted-unmocked-patching dimensiondata.NodeState.RUNNING = True with patch( 'salt.cloud.clouds.dimensiondata.show_instance', MagicMock( return_value={ 'state': True, 'name': 'foo', 'public_ips': [], 'private_ips': private_ips })): with patch('salt.cloud.clouds.dimensiondata.preferred_ip', _preferred_ip(private_ips, [zero_ip])): with patch('salt.cloud.clouds.dimensiondata.ssh_interface', MagicMock(return_value='private_ips')): self.assertEqual( dimensiondata._query_node_data(vm, data).public_ips, [zero_ip])
class DimensionDataTestCase(ExtendedTestCase): ''' Unit TestCase for salt.cloud.clouds.dimensiondata module. ''' def test_avail_images_call(self): ''' Tests that a SaltCloudSystemExit is raised when trying to call avail_images with --action or -a. ''' self.assertRaises( SaltCloudSystemExit, dimensiondata.avail_images, call='action' ) def test_avail_locations_call(self): ''' Tests that a SaltCloudSystemExit is raised when trying to call avail_locations with --action or -a. ''' self.assertRaises( SaltCloudSystemExit, dimensiondata.avail_locations, call='action' ) def test_avail_sizes_call(self): ''' Tests that a SaltCloudSystemExit is raised when trying to call avail_sizes with --action or -a. ''' self.assertRaises( SaltCloudSystemExit, dimensiondata.avail_sizes, call='action' ) def test_list_nodes_call(self): ''' Tests that a SaltCloudSystemExit is raised when trying to call list_nodes with --action or -a. ''' self.assertRaises( SaltCloudSystemExit, dimensiondata.list_nodes, call='action' ) def test_destroy_call(self): ''' Tests that a SaltCloudSystemExit is raised when trying to call destroy with --function or -f. ''' self.assertRaises( SaltCloudSystemExit, dimensiondata.destroy, name=VM_NAME, call='function' ) @skipIf(HAS_LIBCLOUD is False, "Install 'libcloud' to be able to run this unit test.") def test_avail_sizes(self): ''' Tests that avail_sizes returns an empty dictionary. ''' sizes = dimensiondata.avail_sizes(call='foo') self.assertEqual( len(sizes), 1 ) self.assertEqual( sizes['default']['name'], 'default' ) def test_import(self): """ Test that the module picks up installed deps """ with patch('salt.config.check_driver_dependencies', return_value=True) as p: get_deps = dimensiondata.get_dependencies() self.assertEqual(get_deps, True) if LooseVersion(mock.__version__) >= LooseVersion('2.0.0'): p.assert_called_once() def test_provider_matches(self): """ Test that the first configured instance of a dimensiondata driver is matched """ p = dimensiondata.get_configured_provider() self.assertNotEqual(p, None) PRIVATE_IPS = ['0.0.0.0', '1.1.1.1', '2.2.2.2'] @patch('salt.cloud.clouds.dimensiondata.show_instance', MagicMock(return_value={'state': True, 'name': 'foo', 'public_ips': [], 'private_ips': PRIVATE_IPS})) @patch('salt.cloud.clouds.dimensiondata.preferred_ip', _preferred_ip(PRIVATE_IPS, ['0.0.0.0'])) @patch('salt.cloud.clouds.dimensiondata.ssh_interface', MagicMock(return_value='private_ips')) def test_query_node_data_filter_preferred_ip_addresses(self): ''' Test if query node data is filtering out unpreferred IP addresses. ''' dimensiondata.NodeState = MagicMock() dimensiondata.NodeState.RUNNING = True dimensiondata.__opts__ = {} vm = {'name': None} data = MagicMock() data.public_ips = [] assert dimensiondata._query_node_data(vm, data).public_ips == ['0.0.0.0']