summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-02-25 01:05:16 +0000
committerGerrit Code Review <review@openstack.org>2018-02-25 01:05:16 +0000
commitd6761f093608247846acb946cbe2bbdf91e21d0d (patch)
tree03e20ba722bd4051b13ff77b27325ae0e6cb4fde /openstackclient/tests/unit
parent1b5cab40b54ad2436c5d8b35369b0d802c75837d (diff)
parentd32664150fbc00340f3ff4304c13abf9a191299a (diff)
downloadpython-openstackclient-d6761f093608247846acb946cbe2bbdf91e21d0d.tar.gz
Merge "Add project tags functionality"
Diffstat (limited to 'openstackclient/tests/unit')
-rw-r--r--openstackclient/tests/unit/identity/v3/fakes.py7
-rw-r--r--openstackclient/tests/unit/identity/v3/test_domain.py5
-rw-r--r--openstackclient/tests/unit/identity/v3/test_project.py103
3 files changed, 111 insertions, 4 deletions
diff --git a/openstackclient/tests/unit/identity/v3/fakes.py b/openstackclient/tests/unit/identity/v3/fakes.py
index 3e2caf01..3770e29f 100644
--- a/openstackclient/tests/unit/identity/v3/fakes.py
+++ b/openstackclient/tests/unit/identity/v3/fakes.py
@@ -34,6 +34,7 @@ DOMAIN = {
'name': domain_name,
'description': domain_description,
'enabled': True,
+ 'tags': [],
'links': base_url + 'domains/' + domain_id,
}
@@ -115,6 +116,7 @@ PROJECT = {
'description': project_description,
'enabled': True,
'domain_id': domain_id,
+ 'tags': [],
'links': base_url + 'projects/' + project_id,
}
@@ -124,6 +126,7 @@ PROJECT_2 = {
'description': project_description + 'plus four more',
'enabled': True,
'domain_id': domain_id,
+ 'tags': [],
'links': base_url + 'projects/' + project_id,
}
@@ -145,6 +148,7 @@ PROJECT_WITH_PARENT = {
'enabled': True,
'domain_id': domain_id,
'parent_id': project_id,
+ 'tags': [],
'links': base_url + 'projects/' + (project_id + '-with-parent'),
}
@@ -155,6 +159,7 @@ PROJECT_WITH_GRANDPARENT = {
'enabled': True,
'domain_id': domain_id,
'parent_id': PROJECT_WITH_PARENT['id'],
+ 'tags': [],
'links': base_url + 'projects/' + (project_id + '-with-grandparent'),
}
@@ -619,6 +624,7 @@ class FakeProject(object):
'is_domain': False,
'domain_id': 'domain-id-' + uuid.uuid4().hex,
'parent_id': 'parent-id-' + uuid.uuid4().hex,
+ 'tags': [],
'links': 'links-' + uuid.uuid4().hex,
}
project_info.update(attrs)
@@ -666,6 +672,7 @@ class FakeDomain(object):
'name': 'domain-name-' + uuid.uuid4().hex,
'description': 'domain-description-' + uuid.uuid4().hex,
'enabled': True,
+ 'tags': [],
'links': 'links-' + uuid.uuid4().hex,
}
domain_info.update(attrs)
diff --git a/openstackclient/tests/unit/identity/v3/test_domain.py b/openstackclient/tests/unit/identity/v3/test_domain.py
index 36f13d33..014986e5 100644
--- a/openstackclient/tests/unit/identity/v3/test_domain.py
+++ b/openstackclient/tests/unit/identity/v3/test_domain.py
@@ -31,6 +31,7 @@ class TestDomainCreate(TestDomain):
'enabled',
'id',
'name',
+ 'tags'
)
def setUp(self):
@@ -43,6 +44,7 @@ class TestDomainCreate(TestDomain):
True,
self.domain.id,
self.domain.name,
+ self.domain.tags
)
# Get the command object to test
@@ -390,12 +392,13 @@ class TestDomainShow(TestDomain):
self.domain.id,
)
- collist = ('description', 'enabled', 'id', 'name')
+ collist = ('description', 'enabled', 'id', 'name', 'tags')
self.assertEqual(collist, columns)
datalist = (
self.domain.description,
True,
self.domain.id,
self.domain.name,
+ self.domain.tags
)
self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/unit/identity/v3/test_project.py b/openstackclient/tests/unit/identity/v3/test_project.py
index 16ac3116..266da227 100644
--- a/openstackclient/tests/unit/identity/v3/test_project.py
+++ b/openstackclient/tests/unit/identity/v3/test_project.py
@@ -50,6 +50,7 @@ class TestProjectCreate(TestProject):
'is_domain',
'name',
'parent_id',
+ 'tags'
)
def setUp(self):
@@ -67,6 +68,7 @@ class TestProjectCreate(TestProject):
False,
self.project.name,
self.project.parent_id,
+ self.project.tags
)
# Get the command object to test
self.cmd = project.CreateProject(self.app, None)
@@ -80,6 +82,7 @@ class TestProjectCreate(TestProject):
('enable', False),
('disable', False),
('name', self.project.name),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -95,6 +98,7 @@ class TestProjectCreate(TestProject):
'description': None,
'enabled': True,
'parent': None,
+ 'tags': []
}
# ProjectManager.create(name=, domain=, description=,
# enabled=, **kwargs)
@@ -110,6 +114,7 @@ class TestProjectCreate(TestProject):
'is_domain',
'name',
'parent_id',
+ 'tags'
)
self.assertEqual(collist, columns)
datalist = (
@@ -120,6 +125,7 @@ class TestProjectCreate(TestProject):
False,
self.project.name,
self.project.parent_id,
+ self.project.tags
)
self.assertEqual(datalist, data)
@@ -134,6 +140,7 @@ class TestProjectCreate(TestProject):
('disable', False),
('name', self.project.name),
('parent', None),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -149,6 +156,7 @@ class TestProjectCreate(TestProject):
'description': 'new desc',
'enabled': True,
'parent': None,
+ 'tags': []
}
# ProjectManager.create(name=, domain=, description=,
# enabled=, **kwargs)
@@ -170,6 +178,7 @@ class TestProjectCreate(TestProject):
('disable', False),
('name', self.project.name),
('parent', None),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -185,6 +194,7 @@ class TestProjectCreate(TestProject):
'description': None,
'enabled': True,
'parent': None,
+ 'tags': []
}
# ProjectManager.create(name=, domain=, description=,
# enabled=, **kwargs)
@@ -206,6 +216,7 @@ class TestProjectCreate(TestProject):
('disable', False),
('name', self.project.name),
('parent', None),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
mocker = mock.Mock()
@@ -221,6 +232,7 @@ class TestProjectCreate(TestProject):
'description': None,
'enabled': True,
'parent': None,
+ 'tags': []
}
self.projects_mock.create.assert_called_with(
**kwargs
@@ -238,6 +250,7 @@ class TestProjectCreate(TestProject):
('disable', False),
('name', self.project.name),
('parent', None),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -253,6 +266,7 @@ class TestProjectCreate(TestProject):
'description': None,
'enabled': True,
'parent': None,
+ 'tags': []
}
# ProjectManager.create(name=, domain=, description=,
# enabled=, **kwargs)
@@ -288,6 +302,7 @@ class TestProjectCreate(TestProject):
'description': None,
'enabled': False,
'parent': None,
+ 'tags': []
}
# ProjectManager.create(name=, domain=,
# description=, enabled=, **kwargs)
@@ -324,6 +339,7 @@ class TestProjectCreate(TestProject):
'parent': None,
'fee': 'fi',
'fo': 'fum',
+ 'tags': []
}
# ProjectManager.create(name=, domain=, description=,
# enabled=, **kwargs)
@@ -352,6 +368,7 @@ class TestProjectCreate(TestProject):
('enable', False),
('disable', False),
('name', self.project.name),
+ ('tags', [])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -363,6 +380,7 @@ class TestProjectCreate(TestProject):
'parent': self.parent.id,
'description': None,
'enabled': True,
+ 'tags': []
}
self.projects_mock.create.assert_called_with(
@@ -377,6 +395,7 @@ class TestProjectCreate(TestProject):
'is_domain',
'name',
'parent_id',
+ 'tags'
)
self.assertEqual(columns, collist)
datalist = (
@@ -387,6 +406,7 @@ class TestProjectCreate(TestProject):
self.project.is_domain,
self.project.name,
self.parent.id,
+ self.project.tags
)
self.assertEqual(data, datalist)
@@ -417,6 +437,43 @@ class TestProjectCreate(TestProject):
parsed_args,
)
+ def test_project_create_with_tags(self):
+ arglist = [
+ '--domain', self.project.domain_id,
+ '--tag', 'foo',
+ self.project.name,
+ ]
+ verifylist = [
+ ('domain', self.project.domain_id),
+ ('enable', False),
+ ('disable', False),
+ ('name', self.project.name),
+ ('parent', None),
+ ('tags', ['foo'])
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # In base command class ShowOne in cliff, abstract method take_action()
+ # returns a two-part tuple with a tuple of column names and a tuple of
+ # data to be shown.
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'name': self.project.name,
+ 'domain': self.project.domain_id,
+ 'description': None,
+ 'enabled': True,
+ 'parent': None,
+ 'tags': ['foo']
+ }
+ self.projects_mock.create.assert_called_with(
+ **kwargs
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist, data)
+
class TestProjectDelete(TestProject):
@@ -816,6 +873,38 @@ class TestProjectSet(TestProject):
)
self.assertIsNone(result)
+ def test_project_set_tags(self):
+ arglist = [
+ '--name', 'qwerty',
+ '--domain', self.project.domain_id,
+ '--tag', 'foo',
+ self.project.name,
+ ]
+ verifylist = [
+ ('name', 'qwerty'),
+ ('domain', self.project.domain_id),
+ ('enable', False),
+ ('disable', False),
+ ('project', self.project.name),
+ ('tags', ['foo'])
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'name': 'qwerty',
+ 'tags': ['foo']
+ }
+ # ProjectManager.update(project, name=, domain=, description=,
+ # enabled=, **kwargs)
+ self.projects_mock.update.assert_called_with(
+ self.project.id,
+ **kwargs
+ )
+ self.assertIsNone(result)
+
class TestProjectShow(TestProject):
@@ -867,6 +956,7 @@ class TestProjectShow(TestProject):
'is_domain',
'name',
'parent_id',
+ 'tags'
)
self.assertEqual(collist, columns)
datalist = (
@@ -877,6 +967,7 @@ class TestProjectShow(TestProject):
False,
self.project.name,
self.project.parent_id,
+ self.project.tags
)
self.assertEqual(datalist, data)
@@ -926,6 +1017,7 @@ class TestProjectShow(TestProject):
'name',
'parent_id',
'parents',
+ 'tags'
)
self.assertEqual(columns, collist)
datalist = (
@@ -936,7 +1028,8 @@ class TestProjectShow(TestProject):
self.project.is_domain,
self.project.name,
self.project.parent_id,
- [{'project': {'id': self.project.parent_id}}]
+ [{'project': {'id': self.project.parent_id}}],
+ self.project.tags
)
self.assertEqual(data, datalist)
@@ -985,6 +1078,7 @@ class TestProjectShow(TestProject):
'name',
'parent_id',
'subtree',
+ 'tags'
)
self.assertEqual(columns, collist)
datalist = (
@@ -995,7 +1089,8 @@ class TestProjectShow(TestProject):
self.project.is_domain,
self.project.name,
self.project.parent_id,
- [{'project': {'id': 'children-id'}}]
+ [{'project': {'id': 'children-id'}}],
+ self.project.tags
)
self.assertEqual(data, datalist)
@@ -1047,6 +1142,7 @@ class TestProjectShow(TestProject):
'parent_id',
'parents',
'subtree',
+ 'tags'
)
self.assertEqual(columns, collist)
datalist = (
@@ -1058,7 +1154,8 @@ class TestProjectShow(TestProject):
self.project.name,
self.project.parent_id,
[{'project': {'id': self.project.parent_id}}],
- [{'project': {'id': 'children-id'}}]
+ [{'project': {'id': 'children-id'}}],
+ self.project.tags
)
self.assertEqual(data, datalist)