|
12 | 12 | # License for the specific language governing permissions and limitations |
13 | 13 | # under the License. |
14 | 14 |
|
| 15 | +from osc_lib import exceptions |
| 16 | + |
15 | 17 | from openstackclient.image.v2 import metadef_objects |
16 | 18 | from openstackclient.tests.unit.image.v2 import fakes |
17 | 19 |
|
@@ -198,3 +200,63 @@ def test_object_set(self): |
198 | 200 | result = self.cmd.take_action(parsed_args) |
199 | 201 |
|
200 | 202 | self.assertIsNone(result) |
| 203 | + |
| 204 | + |
| 205 | +class TestMetadefObjectPropertyShow(fakes.TestImagev2): |
| 206 | + _metadef_namespace = fakes.create_one_metadef_namespace() |
| 207 | + _metadef_objects = fakes.create_one_metadef_object() |
| 208 | + md_property = _metadef_objects['properties']['quota:cpu_quota'] |
| 209 | + md_property['name'] = 'quota:cpu_quota' |
| 210 | + |
| 211 | + expected_columns = ( |
| 212 | + 'description', |
| 213 | + 'name', |
| 214 | + 'title', |
| 215 | + 'type', |
| 216 | + ) |
| 217 | + expected_data = ( |
| 218 | + md_property['description'], |
| 219 | + md_property['name'], |
| 220 | + md_property['title'], |
| 221 | + md_property['type'], |
| 222 | + ) |
| 223 | + |
| 224 | + def setUp(self): |
| 225 | + super().setUp() |
| 226 | + |
| 227 | + self.image_client.get_metadef_object.return_value = ( |
| 228 | + self._metadef_objects |
| 229 | + ) |
| 230 | + self.cmd = metadef_objects.ShowMetadefObjectProperty(self.app, None) |
| 231 | + |
| 232 | + def test_object_property_show(self): |
| 233 | + arglist = [ |
| 234 | + self._metadef_namespace.namespace, |
| 235 | + self._metadef_objects.name, |
| 236 | + 'quota:cpu_quota', |
| 237 | + ] |
| 238 | + verifylist = [] |
| 239 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 240 | + columns, data = self.cmd.take_action(parsed_args) |
| 241 | + |
| 242 | + self.assertEqual(self.expected_columns, columns) |
| 243 | + self.assertEqual(self.expected_data, data) |
| 244 | + |
| 245 | + def test_neg_object_property_show(self): |
| 246 | + arglist = [ |
| 247 | + self._metadef_namespace.namespace, |
| 248 | + self._metadef_objects.name, |
| 249 | + 'prop1', |
| 250 | + ] |
| 251 | + verifylist = [] |
| 252 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 253 | + exc = self.assertRaises( |
| 254 | + exceptions.CommandError, |
| 255 | + self.cmd.take_action, |
| 256 | + parsed_args, |
| 257 | + ) |
| 258 | + self.assertIn( |
| 259 | + 'Property %s not found in object %s.' |
| 260 | + % (parsed_args.property, parsed_args.object), |
| 261 | + str(exc), |
| 262 | + ) |
0 commit comments