class MetadataTests(unittest.TestCase): def setUp(self): self.metadata = MetadataManager() self.make_request = MagicMock() self.metadata.make_request = self.make_request def test_no_param(self): self.make_request.return_value = 'dal01' r = self.metadata.get('datacenter') self.make_request.assert_called_with("Datacenter.json") self.assertEqual('dal01', r) def test_w_param(self): self.make_request.return_value = [123] r = self.metadata.get('vlans', '1:2:3:4:5') self.make_request.assert_called_with("Vlans/1:2:3:4:5.json") self.assertEqual([123], r) def test_user_data(self): self.make_request.return_value = 'user_data' r = self.metadata.get('user_data') self.make_request.assert_called_with("UserMetadata.txt") self.assertEqual('user_data', r) def test_return_none(self): self.make_request.return_value = None r = self.metadata.get('datacenter') self.make_request.assert_called_with("Datacenter.json") self.assertEqual(None, r) def test_w_param_error(self): self.assertRaises(SoftLayerError, self.metadata.get, 'vlans') def test_not_exists(self): self.assertRaises(SoftLayerError, self.metadata.get, 'something') def test_networks_not_exist(self): self.make_request.return_value = [] r = self.metadata.public_network() self.assertEqual({'mac_addresses': []}, r) def test_networks(self): resp = ['list', 'of', 'stuff'] self.make_request.return_value = resp r = self.metadata.public_network() self.assertEqual({ 'vlan_ids': resp, 'router': resp, 'vlans': resp, 'mac_addresses': resp }, r) r = self.metadata.private_network() self.assertEqual({ 'vlan_ids': resp, 'router': resp, 'vlans': resp, 'mac_addresses': resp }, r)
def _execute(self, args): meta = MetadataManager() if args['<public>']: t = KeyValueTable(['Name', 'Value']) t.align['Name'] = 'r' t.align['Value'] = 'l' network = meta.public_network() t.add_row([ 'mac addresses', listing(network['mac_addresses'], separator=',')]) t.add_row([ 'router', network['router']]) t.add_row([ 'vlans', listing(network['vlans'], separator=',')]) t.add_row([ 'vlan ids', listing(network['vlan_ids'], separator=',')]) return t if args['<private>']: t = KeyValueTable(['Name', 'Value']) t.align['Name'] = 'r' t.align['Value'] = 'l' network = meta.private_network() t.add_row([ 'mac addresses', listing(network['mac_addresses'], separator=',')]) t.add_row([ 'router', network['router']]) t.add_row([ 'vlans', listing(network['vlans'], separator=',')]) t.add_row([ 'vlan ids', listing(network['vlan_ids'], separator=',')]) return t