Merge "Set empty Tag list if Network Tag API extension not supported"
This commit is contained in:
commit
589b5132f4
|
@ -115,7 +115,7 @@ class Network(resource.Resource, tag.TagMixin):
|
|||
is_vlan_transparent = resource.Body('vlan_transparent', type=bool)
|
||||
#: A list of assocaited tags
|
||||
#: *Type: list of tag strings*
|
||||
tags = resource.Body('tags', type=list)
|
||||
tags = resource.Body('tags', type=list, default=[])
|
||||
|
||||
|
||||
class DHCPAgentHostingNetwork(Network):
|
||||
|
|
|
@ -131,4 +131,4 @@ class Port(resource.Resource, tag.TagMixin):
|
|||
updated_at = resource.Body('updated_at')
|
||||
#: A list of assocaited tags
|
||||
#: *Type: list of tag strings*
|
||||
tags = resource.Body('tags', type=list)
|
||||
tags = resource.Body('tags', type=list, default=[])
|
||||
|
|
|
@ -78,7 +78,7 @@ class Router(resource.Resource, tag.TagMixin):
|
|||
updated_at = resource.Body('updated_at')
|
||||
#: A list of assocaited tags
|
||||
#: *Type: list of tag strings*
|
||||
tags = resource.Body('tags', type=list)
|
||||
tags = resource.Body('tags', type=list, default=[])
|
||||
|
||||
def add_interface(self, session, **body):
|
||||
"""Add an internal interface to a logical router.
|
||||
|
|
|
@ -91,4 +91,4 @@ class Subnet(resource.Resource, tag.TagMixin):
|
|||
)
|
||||
#: A list of assocaited tags
|
||||
#: *Type: list of tag strings*
|
||||
tags = resource.Body('tags', type=list)
|
||||
tags = resource.Body('tags', type=list, default=[])
|
||||
|
|
|
@ -81,4 +81,4 @@ class SubnetPool(resource.Resource, tag.TagMixin):
|
|||
updated_at = resource.Body('updated_at')
|
||||
#: A list of assocaited tags
|
||||
#: *Type: list of tag strings*
|
||||
tags = resource.Body('tags', type=list)
|
||||
tags = resource.Body('tags', type=list, default=[])
|
||||
|
|
|
@ -10,11 +10,13 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import inspect
|
||||
import mock
|
||||
import testtools
|
||||
|
||||
from openstack.network.v2 import network
|
||||
|
||||
import openstack.network.v2 as network_resources
|
||||
from openstack.network.v2.tag import TagMixin
|
||||
|
||||
ID = 'IDENTIFIER'
|
||||
|
||||
|
@ -22,17 +24,17 @@ ID = 'IDENTIFIER'
|
|||
class TestTag(testtools.TestCase):
|
||||
|
||||
@staticmethod
|
||||
def _create_resource(tags=None):
|
||||
def _create_network_resource(tags=None):
|
||||
tags = tags or []
|
||||
return network.Network(id=ID, name='test-net', tags=tags)
|
||||
|
||||
def test_tags_attribute(self):
|
||||
net = self._create_resource()
|
||||
net = self._create_network_resource()
|
||||
self.assertTrue(hasattr(net, 'tags'))
|
||||
self.assertIsInstance(net.tags, list)
|
||||
|
||||
def test_set_tags(self):
|
||||
net = self._create_resource()
|
||||
net = self._create_network_resource()
|
||||
sess = mock.Mock()
|
||||
result = net.set_tags(sess, ['blue', 'green'])
|
||||
# Check tags attribute is updated
|
||||
|
@ -42,3 +44,13 @@ class TestTag(testtools.TestCase):
|
|||
url = 'networks/' + ID + '/tags'
|
||||
sess.put.assert_called_once_with(url,
|
||||
json={'tags': ['blue', 'green']})
|
||||
|
||||
def test_tagged_resource_always_created_with_empty_tag_list(self):
|
||||
for _, module in inspect.getmembers(network_resources,
|
||||
inspect.ismodule):
|
||||
for _, resource in inspect.getmembers(module, inspect.isclass):
|
||||
if issubclass(resource, TagMixin) and resource != TagMixin:
|
||||
x_resource = resource.new(
|
||||
id="%s_ID" % resource.resource_key.upper())
|
||||
self.assertIsNotNone(x_resource.tags)
|
||||
self.assertEqual(x_resource.tags, list())
|
||||
|
|
Loading…
Reference in New Issue