summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/unit')
-rw-r--r--openstackclient/tests/unit/compute/v2/fakes.py1
-rw-r--r--openstackclient/tests/unit/compute/v2/test_keypair.py144
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py25
-rw-r--r--openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py1
-rw-r--r--openstackclient/tests/unit/network/v2/test_security_group_rule_network.py16
5 files changed, 157 insertions, 30 deletions
diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py
index ce556fa6..3a06d271 100644
--- a/openstackclient/tests/unit/compute/v2/fakes.py
+++ b/openstackclient/tests/unit/compute/v2/fakes.py
@@ -884,6 +884,7 @@ class FakeKeypair(object):
# Set default attributes.
keypair_info = {
'name': 'keypair-name-' + uuid.uuid4().hex,
+ 'type': 'ssh',
'fingerprint': 'dummy',
'public_key': 'dummy',
'user_id': 'user'
diff --git a/openstackclient/tests/unit/compute/v2/test_keypair.py b/openstackclient/tests/unit/compute/v2/test_keypair.py
index 1f3f56f9..ca3bfe7c 100644
--- a/openstackclient/tests/unit/compute/v2/test_keypair.py
+++ b/openstackclient/tests/unit/compute/v2/test_keypair.py
@@ -17,6 +17,7 @@ from unittest import mock
from unittest.mock import call
import uuid
+from novaclient import api_versions
from osc_lib import exceptions
from osc_lib import utils
@@ -45,11 +46,13 @@ class TestKeypairCreate(TestKeypair):
self.columns = (
'fingerprint',
'name',
+ 'type',
'user_id'
)
self.data = (
self.keypair.fingerprint,
self.keypair.name,
+ self.keypair.type,
self.keypair.user_id
)
@@ -71,7 +74,7 @@ class TestKeypairCreate(TestKeypair):
columns, data = self.cmd.take_action(parsed_args)
self.keypairs_mock.create.assert_called_with(
- self.keypair.name,
+ name=self.keypair.name,
public_key=None
)
@@ -87,6 +90,7 @@ class TestKeypairCreate(TestKeypair):
self.data = (
self.keypair.fingerprint,
self.keypair.name,
+ self.keypair.type,
self.keypair.user_id
)
@@ -96,7 +100,7 @@ class TestKeypairCreate(TestKeypair):
]
verifylist = [
('public_key', self.keypair.public_key),
- ('name', self.keypair.name)
+ ('name', self.keypair.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -109,8 +113,8 @@ class TestKeypairCreate(TestKeypair):
columns, data = self.cmd.take_action(parsed_args)
self.keypairs_mock.create.assert_called_with(
- self.keypair.name,
- public_key=self.keypair.public_key
+ name=self.keypair.name,
+ public_key=self.keypair.public_key,
)
self.assertEqual(self.columns, columns)
@@ -124,7 +128,7 @@ class TestKeypairCreate(TestKeypair):
]
verifylist = [
('private_key', tmp_pk_file),
- ('name', self.keypair.name)
+ ('name', self.keypair.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -136,8 +140,8 @@ class TestKeypairCreate(TestKeypair):
columns, data = self.cmd.take_action(parsed_args)
self.keypairs_mock.create.assert_called_with(
- self.keypair.name,
- public_key=None
+ name=self.keypair.name,
+ public_key=None,
)
mock_open.assert_called_once_with(tmp_pk_file, 'w+')
@@ -146,6 +150,79 @@ class TestKeypairCreate(TestKeypair):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
+ def test_keypair_create_with_key_type(self):
+ self.app.client_manager.compute.api_version = api_versions.APIVersion(
+ '2.2')
+
+ for key_type in ['x509', 'ssh']:
+ self.keypair = compute_fakes.FakeKeypair.create_one_keypair(
+ no_pri=True)
+ self.keypairs_mock.create.return_value = self.keypair
+
+ self.data = (
+ self.keypair.fingerprint,
+ self.keypair.name,
+ self.keypair.type,
+ self.keypair.user_id,
+ )
+ arglist = [
+ '--public-key', self.keypair.public_key,
+ self.keypair.name,
+ '--type', key_type,
+ ]
+ verifylist = [
+ ('public_key', self.keypair.public_key),
+ ('name', self.keypair.name),
+ ('type', key_type),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ with mock.patch('io.open') as mock_open:
+ mock_open.return_value = mock.MagicMock()
+ m_file = mock_open.return_value.__enter__.return_value
+ m_file.read.return_value = 'dummy'
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.keypairs_mock.create.assert_called_with(
+ name=self.keypair.name,
+ public_key=self.keypair.public_key,
+ key_type=key_type,
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, data)
+
+ def test_keypair_create_with_key_type_pre_v22(self):
+ self.app.client_manager.compute.api_version = api_versions.APIVersion(
+ '2.1')
+
+ for key_type in ['x509', 'ssh']:
+ arglist = [
+ '--public-key', self.keypair.public_key,
+ self.keypair.name,
+ '--type', 'ssh',
+ ]
+ verifylist = [
+ ('public_key', self.keypair.public_key),
+ ('name', self.keypair.name),
+ ('type', 'ssh'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ with mock.patch('io.open') as mock_open:
+ mock_open.return_value = mock.MagicMock()
+ m_file = mock_open.return_value.__enter__.return_value
+ m_file.read.return_value = 'dummy'
+
+ ex = self.assertRaises(
+ exceptions.CommandError,
+ self.cmd.take_action,
+ parsed_args)
+
+ self.assertIn(
+ '--os-compute-api-version 2.2 or greater is required',
+ str(ex))
+
class TestKeypairDelete(TestKeypair):
@@ -227,16 +304,6 @@ class TestKeypairList(TestKeypair):
# Return value of self.keypairs_mock.list().
keypairs = compute_fakes.FakeKeypair.create_keypairs(count=1)
- columns = (
- "Name",
- "Fingerprint"
- )
-
- data = ((
- keypairs[0].name,
- keypairs[0].fingerprint
- ), )
-
def setUp(self):
super(TestKeypairList, self).setUp()
@@ -247,8 +314,7 @@ class TestKeypairList(TestKeypair):
def test_keypair_list_no_options(self):
arglist = []
- verifylist = [
- ]
+ verifylist = []
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -261,8 +327,39 @@ class TestKeypairList(TestKeypair):
self.keypairs_mock.list.assert_called_with()
- self.assertEqual(self.columns, columns)
- self.assertEqual(tuple(self.data), tuple(data))
+ self.assertEqual(('Name', 'Fingerprint'), columns)
+ self.assertEqual(
+ ((self.keypairs[0].name, self.keypairs[0].fingerprint), ),
+ tuple(data)
+ )
+
+ def test_keypair_list_v22(self):
+ self.app.client_manager.compute.api_version = api_versions.APIVersion(
+ '2.2')
+
+ arglist = []
+ verifylist = []
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # In base command class Lister in cliff, abstract method take_action()
+ # returns a tuple containing the column names and an iterable
+ # containing the data to be listed.
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+
+ self.keypairs_mock.list.assert_called_with()
+
+ self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
+ self.assertEqual(
+ ((
+ self.keypairs[0].name,
+ self.keypairs[0].fingerprint,
+ self.keypairs[0].type,
+ ), ),
+ tuple(data)
+ )
class TestKeypairShow(TestKeypair):
@@ -279,16 +376,18 @@ class TestKeypairShow(TestKeypair):
self.columns = (
"fingerprint",
"name",
+ "type",
"user_id"
)
self.data = (
self.keypair.fingerprint,
self.keypair.name,
+ self.keypair.type,
self.keypair.user_id
)
- def test_show_no_options(self):
+ def test_keypair_show_no_options(self):
arglist = []
verifylist = []
@@ -306,6 +405,7 @@ class TestKeypairShow(TestKeypair):
self.data = (
self.keypair.fingerprint,
self.keypair.name,
+ self.keypair.type,
self.keypair.user_id
)
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 3b98c873..100559f3 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -977,6 +977,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[],
scheduler_hints={},
@@ -1003,6 +1004,7 @@ class TestServerCreate(TestServer):
'--property', 'Beta=b',
'--security-group', 'securitygroup',
'--use-config-drive',
+ '--password', 'passw0rd',
'--hint', 'a=b',
'--hint', 'a=c',
self.new_server.name,
@@ -1015,6 +1017,7 @@ class TestServerCreate(TestServer):
('security_group', ['securitygroup']),
('hint', {'a': ['b', 'c']}),
('config_drive', True),
+ ('password', 'passw0rd'),
('server_name', self.new_server.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1043,6 +1046,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name='keyname',
availability_zone=None,
+ admin_pass='passw0rd',
block_device_mapping_v2=[],
nics=[],
scheduler_hints={'a': ['b', 'c']},
@@ -1129,6 +1133,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name='keyname',
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[],
scheduler_hints={},
@@ -1215,6 +1220,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[{'net-id': 'net1_uuid',
'v4-fixed-ip': '',
@@ -1279,6 +1285,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
@@ -1328,6 +1335,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
@@ -1373,6 +1381,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='none',
scheduler_hints={},
@@ -1538,6 +1547,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[],
scheduler_hints={},
@@ -1588,6 +1598,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[],
scheduler_hints={},
@@ -1643,6 +1654,7 @@ class TestServerCreate(TestServer):
userdata=mock_file,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics=[],
scheduler_hints={},
@@ -1689,6 +1701,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[{
'device_name': 'vda',
'uuid': self.volume.id,
@@ -1741,6 +1754,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[{
'device_name': 'vdf',
'uuid': self.volume.id,
@@ -1792,6 +1806,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[{
'device_name': 'vdf',
'uuid': self.volume.id,
@@ -1845,6 +1860,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[{
'device_name': 'vde',
'uuid': self.volume.id,
@@ -1900,6 +1916,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[{
'device_name': 'vds',
'uuid': self.snapshot.id,
@@ -1955,6 +1972,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[
{
'device_name': 'vdb',
@@ -2091,6 +2109,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='none',
meta=None,
@@ -2146,6 +2165,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='none',
meta=None,
@@ -2235,6 +2255,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='none',
meta=None,
@@ -2315,6 +2336,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
@@ -2399,6 +2421,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
@@ -2484,6 +2507,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
@@ -2571,6 +2595,7 @@ class TestServerCreate(TestServer):
userdata=None,
key_name=None,
availability_zone=None,
+ admin_pass=None,
block_device_mapping_v2=[],
nics='auto',
scheduler_hints={},
diff --git a/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py b/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py
index 5720e305..b7e38afb 100644
--- a/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py
+++ b/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py
@@ -362,6 +362,7 @@ class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute):
'Ethertype',
'IP Range',
'Port Range',
+ 'Direction',
'Remote Security Group',
)
expected_columns_no_group = \
diff --git a/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py b/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py
index 0a9522b0..01411611 100644
--- a/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py
+++ b/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py
@@ -870,7 +870,7 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
_security_group_rules = [_security_group_rule_tcp,
_security_group_rule_icmp]
- expected_columns_with_group_and_long = (
+ expected_columns_with_group = (
'ID',
'IP Protocol',
'Ethertype',
@@ -885,14 +885,15 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
'Ethertype',
'IP Range',
'Port Range',
+ 'Direction',
'Remote Security Group',
'Security Group',
)
- expected_data_with_group_and_long = []
+ expected_data_with_group = []
expected_data_no_group = []
for _security_group_rule in _security_group_rules:
- expected_data_with_group_and_long.append((
+ expected_data_with_group.append((
_security_group_rule.id,
_security_group_rule.protocol,
_security_group_rule.ether_type,
@@ -909,6 +910,7 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
_security_group_rule.remote_ip_prefix,
security_group_rule._format_network_port_range(
_security_group_rule),
+ _security_group_rule.direction,
_security_group_rule.remote_group_id,
_security_group_rule.security_group_id,
))
@@ -935,14 +937,12 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
self.assertEqual(self.expected_columns_no_group, columns)
self.assertEqual(self.expected_data_no_group, list(data))
- def test_list_with_group_and_long(self):
+ def test_list_with_group(self):
self._security_group_rule_tcp.port_range_min = 80
arglist = [
- '--long',
self._security_group.id,
]
verifylist = [
- ('long', True),
('group', self._security_group.id),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -952,8 +952,8 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork):
self.network.security_group_rules.assert_called_once_with(**{
'security_group_id': self._security_group.id,
})
- self.assertEqual(self.expected_columns_with_group_and_long, columns)
- self.assertEqual(self.expected_data_with_group_and_long, list(data))
+ self.assertEqual(self.expected_columns_with_group, columns)
+ self.assertEqual(self.expected_data_with_group, list(data))
def test_list_with_ignored_options(self):
self._security_group_rule_tcp.port_range_min = 80