@@ -1233,6 +1233,101 @@ def test_shelve_multi_servers(self):
12331233 self .run_method_with_servers ('shelve' , 3 )
12341234
12351235
1236+ class TestServerShow (TestServer ):
1237+
1238+ def setUp (self ):
1239+ super (TestServerShow , self ).setUp ()
1240+
1241+ self .image = image_fakes .FakeImage .create_one_image ()
1242+ self .flavor = compute_fakes .FakeFlavor .create_one_flavor ()
1243+ server_info = {
1244+ 'image' : {'id' : self .image .id },
1245+ 'flavor' : {'id' : self .flavor .id },
1246+ 'tenant_id' : 'tenant-id-xxx' ,
1247+ 'networks' : {'public' : ['10.20.30.40' , '2001:db8::f' ]},
1248+ }
1249+ # Fake the server.diagnostics() method. The return value contains http
1250+ # response and data. The data is a dict. Sincce this method itself is
1251+ # faked, we don't need to fake everything of the return value exactly.
1252+ resp = mock .Mock ()
1253+ resp .status_code = 200
1254+ server_method = {
1255+ 'diagnostics' : (resp , {'test' : 'test' }),
1256+ }
1257+ self .server = compute_fakes .FakeServer .create_one_server (
1258+ attrs = server_info , methods = server_method )
1259+
1260+ # This is the return value for utils.find_resource()
1261+ self .servers_mock .get .return_value = self .server
1262+ self .cimages_mock .get .return_value = self .image
1263+ self .flavors_mock .get .return_value = self .flavor
1264+
1265+ # Get the command object to test
1266+ self .cmd = server .ShowServer (self .app , None )
1267+
1268+ self .columns = (
1269+ 'OS-EXT-STS:power_state' ,
1270+ 'addresses' ,
1271+ 'flavor' ,
1272+ 'id' ,
1273+ 'image' ,
1274+ 'name' ,
1275+ 'networks' ,
1276+ 'project_id' ,
1277+ 'properties' ,
1278+ )
1279+
1280+ self .data = (
1281+ 'Running' ,
1282+ 'public=10.20.30.40, 2001:db8::f' ,
1283+ self .flavor .name + " (" + self .flavor .id + ")" ,
1284+ self .server .id ,
1285+ self .image .name + " (" + self .image .id + ")" ,
1286+ self .server .name ,
1287+ {'public' : ['10.20.30.40' , '2001:db8::f' ]},
1288+ 'tenant-id-xxx' ,
1289+ '' ,
1290+ )
1291+
1292+ def test_show_no_options (self ):
1293+ arglist = []
1294+ verifylist = []
1295+
1296+ self .assertRaises (utils .ParserException , self .check_parser ,
1297+ self .cmd , arglist , verifylist )
1298+
1299+ def test_show (self ):
1300+ arglist = [
1301+ self .server .name ,
1302+ ]
1303+ verifylist = [
1304+ ('diagnostics' , False ),
1305+ ('server' , self .server .name ),
1306+ ]
1307+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1308+
1309+ columns , data = self .cmd .take_action (parsed_args )
1310+
1311+ self .assertEqual (self .columns , columns )
1312+ self .assertEqual (self .data , data )
1313+
1314+ def test_show_diagnostics (self ):
1315+ arglist = [
1316+ '--diagnostics' ,
1317+ self .server .name ,
1318+ ]
1319+ verifylist = [
1320+ ('diagnostics' , True ),
1321+ ('server' , self .server .name ),
1322+ ]
1323+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1324+
1325+ columns , data = self .cmd .take_action (parsed_args )
1326+
1327+ self .assertEqual (('test' ,), columns )
1328+ self .assertEqual (('test' ,), data )
1329+
1330+
12361331class TestServerStart (TestServer ):
12371332
12381333 def setUp (self ):
0 commit comments