|
12 | 12 | # License for the specific language governing permissions and limitations |
13 | 13 | # under the License. |
14 | 14 | # |
| 15 | +import getpass |
15 | 16 | import mock |
16 | 17 |
|
17 | 18 | from mock import call |
@@ -1273,6 +1274,53 @@ def test_server_set_with_invalid_state(self): |
1273 | 1274 | self.check_parser, |
1274 | 1275 | self.cmd, arglist, verifylist) |
1275 | 1276 |
|
| 1277 | + def test_server_set_with_name(self): |
| 1278 | + arglist = [ |
| 1279 | + '--name', 'foo_name', |
| 1280 | + 'foo_vm', |
| 1281 | + ] |
| 1282 | + verifylist = [ |
| 1283 | + ('name', 'foo_name'), |
| 1284 | + ('server', 'foo_vm'), |
| 1285 | + ] |
| 1286 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 1287 | + result = self.cmd.take_action(parsed_args) |
| 1288 | + self.fake_servers[0].update.assert_called_once_with(name='foo_name') |
| 1289 | + self.assertIsNone(result) |
| 1290 | + |
| 1291 | + def test_server_set_with_property(self): |
| 1292 | + arglist = [ |
| 1293 | + '--property', 'key1=value1', |
| 1294 | + '--property', 'key2=value2', |
| 1295 | + 'foo_vm', |
| 1296 | + ] |
| 1297 | + verifylist = [ |
| 1298 | + ('property', {'key1': 'value1', 'key2': 'value2'}), |
| 1299 | + ('server', 'foo_vm'), |
| 1300 | + ] |
| 1301 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 1302 | + result = self.cmd.take_action(parsed_args) |
| 1303 | + self.servers_mock.set_meta.assert_called_once_with( |
| 1304 | + self.fake_servers[0], parsed_args.property) |
| 1305 | + self.assertIsNone(result) |
| 1306 | + |
| 1307 | + @mock.patch.object(getpass, 'getpass', |
| 1308 | + return_value=mock.sentinel.fake_pass) |
| 1309 | + def test_server_set_with_root_password(self, mock_getpass): |
| 1310 | + arglist = [ |
| 1311 | + '--root-password', |
| 1312 | + 'foo_vm', |
| 1313 | + ] |
| 1314 | + verifylist = [ |
| 1315 | + ('root_password', True), |
| 1316 | + ('server', 'foo_vm'), |
| 1317 | + ] |
| 1318 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 1319 | + result = self.cmd.take_action(parsed_args) |
| 1320 | + self.fake_servers[0].change_password.assert_called_once_with( |
| 1321 | + mock.sentinel.fake_pass) |
| 1322 | + self.assertIsNone(result) |
| 1323 | + |
1276 | 1324 |
|
1277 | 1325 | class TestServerShelve(TestServer): |
1278 | 1326 |
|
@@ -1489,6 +1537,45 @@ def test_server_unpause_multi_servers(self): |
1489 | 1537 | self.run_method_with_servers('unpause', 3) |
1490 | 1538 |
|
1491 | 1539 |
|
| 1540 | +class TestServerUnset(TestServer): |
| 1541 | + |
| 1542 | + def setUp(self): |
| 1543 | + super(TestServerUnset, self).setUp() |
| 1544 | + |
| 1545 | + self.fake_server = self.setup_servers_mock(1)[0] |
| 1546 | + |
| 1547 | + # Get the command object to test |
| 1548 | + self.cmd = server.UnsetServer(self.app, None) |
| 1549 | + |
| 1550 | + def test_server_unset_no_option(self): |
| 1551 | + arglist = [ |
| 1552 | + 'foo_vm', |
| 1553 | + ] |
| 1554 | + verifylist = [ |
| 1555 | + ('server', 'foo_vm'), |
| 1556 | + ] |
| 1557 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 1558 | + result = self.cmd.take_action(parsed_args) |
| 1559 | + self.assertNotCalled(self.servers_mock.delete_meta) |
| 1560 | + self.assertIsNone(result) |
| 1561 | + |
| 1562 | + def test_server_unset_with_property(self): |
| 1563 | + arglist = [ |
| 1564 | + '--property', 'key1', |
| 1565 | + '--property', 'key2', |
| 1566 | + 'foo_vm', |
| 1567 | + ] |
| 1568 | + verifylist = [ |
| 1569 | + ('property', ['key1', 'key2']), |
| 1570 | + ('server', 'foo_vm'), |
| 1571 | + ] |
| 1572 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 1573 | + result = self.cmd.take_action(parsed_args) |
| 1574 | + self.servers_mock.delete_meta.assert_called_once_with( |
| 1575 | + self.fake_server, ['key1', 'key2']) |
| 1576 | + self.assertIsNone(result) |
| 1577 | + |
| 1578 | + |
1492 | 1579 | class TestServerUnshelve(TestServer): |
1493 | 1580 |
|
1494 | 1581 | def setUp(self): |
|
0 commit comments