|
4 | 4 |
|
5 | 5 | :license: MIT, see LICENSE for more details. |
6 | 6 | """ |
| 7 | +from SoftLayer.fixtures import SoftLayer_Product_Order |
| 8 | +from SoftLayer.fixtures import SoftLayer_Product_Package |
7 | 9 | from SoftLayer import testing |
8 | 10 |
|
9 | 11 | import json |
| 12 | +import mock |
| 13 | +import SoftLayer |
10 | 14 |
|
11 | 15 |
|
12 | 16 | class SubnetTests(testing.TestCase): |
| 17 | + |
13 | 18 | def test_detail(self): |
14 | 19 | result = self.run_command(['subnet', 'detail', '1234']) |
15 | 20 |
|
@@ -39,3 +44,54 @@ def test_detail(self): |
39 | 44 | def test_list(self): |
40 | 45 | result = self.run_command(['subnet', 'list']) |
41 | 46 | self.assert_no_fail(result) |
| 47 | + |
| 48 | + @mock.patch('SoftLayer.CLI.formatting.confirm') |
| 49 | + def test_create_subnet_ipv4(self, confirm_mock): |
| 50 | + confirm_mock.return_value = True |
| 51 | + |
| 52 | + item_mock = self.set_mock('SoftLayer_Product_Package', 'getItems') |
| 53 | + item_mock.return_value = SoftLayer_Product_Package.getItems |
| 54 | + |
| 55 | + place_mock = self.set_mock('SoftLayer_Product_Order', 'placeOrder') |
| 56 | + place_mock.return_value = SoftLayer_Product_Order.placeOrder |
| 57 | + |
| 58 | + result = self.run_command(['subnet', 'create', 'private', '8', '12346']) |
| 59 | + self.assert_no_fail(result) |
| 60 | + |
| 61 | + output = [ |
| 62 | + {'Item': 'Total monthly cost', 'cost': '0.00'} |
| 63 | + ] |
| 64 | + |
| 65 | + self.assertEqual(output, json.loads(result.output)) |
| 66 | + |
| 67 | + @mock.patch('SoftLayer.CLI.formatting.confirm') |
| 68 | + def test_create_subnet_ipv6(self, confirm_mock): |
| 69 | + confirm_mock.return_value = True |
| 70 | + |
| 71 | + item_mock = self.set_mock('SoftLayer_Product_Package', 'getItems') |
| 72 | + item_mock.return_value = SoftLayer_Product_Package.getItems |
| 73 | + |
| 74 | + place_mock = self.set_mock('SoftLayer_Product_Order', 'verifyOrder') |
| 75 | + place_mock.return_value = SoftLayer_Product_Order.verifyOrder |
| 76 | + |
| 77 | + result = self.run_command(['subnet', 'create', '--v6', 'public', '64', '12346', '--test']) |
| 78 | + self.assert_no_fail(result) |
| 79 | + |
| 80 | + output = [ |
| 81 | + {'Item': 'this is a thing', 'cost': '2.00'}, |
| 82 | + {'Item': 'Total monthly cost', 'cost': '2.00'} |
| 83 | + ] |
| 84 | + |
| 85 | + self.assertEqual(output, json.loads(result.output)) |
| 86 | + |
| 87 | + def test_create_subnet_no_prices_found(self): |
| 88 | + item_mock = self.set_mock('SoftLayer_Product_Package', 'getItems') |
| 89 | + item_mock.return_value = SoftLayer_Product_Package.getItems |
| 90 | + |
| 91 | + verify_mock = self.set_mock('SoftLayer_Product_Order', 'verifyOrder') |
| 92 | + verify_mock.side_effect = SoftLayer.SoftLayerAPIError('SoftLayer_Exception', 'Price not found') |
| 93 | + |
| 94 | + result = self.run_command(['subnet', 'create', '--v6', 'public', '32', '12346', '--test']) |
| 95 | + |
| 96 | + self.assertRaises(SoftLayer.SoftLayerAPIError, verify_mock) |
| 97 | + self.assertEqual(result.exception.message, 'There is no price id for 32 public ipv6') |
0 commit comments