def execute(self, args): manager = MessagingManager(self.client) regions = manager.get_endpoints() table = Table([ 'name', 'public', 'private' ]) for region, endpoints in regions.items(): table.add_row([ region, endpoints.get('public') or blank(), endpoints.get('private') or blank(), ]) return table
class MessagingManagerTests(unittest.TestCase): def setUp(self): self.client = MagicMock() self.manager = MessagingManager(self.client) def test_list_accounts(self): self.manager.list_accounts() self.client['Account'].getMessageQueueAccounts.assert_called_with( mask=ANY) def test_get_endpoints(self): endpoints = self.manager.get_endpoints() self.assertEqual(endpoints, SoftLayer.managers.messaging.ENDPOINTS) @patch('SoftLayer.managers.messaging.ENDPOINTS', { 'datacenter01': { 'private': 'private_endpoint', 'public': 'public_endpoint'}, 'dal05': { 'private': 'dal05_private', 'public': 'dal05_public'}}) def test_get_endpoint(self): # Defaults to dal05, public endpoint = self.manager.get_endpoint() self.assertEqual(endpoint, 'https://dal05_public') endpoint = self.manager.get_endpoint(network='private') self.assertEqual(endpoint, 'https://dal05_private') endpoint = self.manager.get_endpoint(datacenter='datacenter01') self.assertEqual(endpoint, 'https://public_endpoint') endpoint = self.manager.get_endpoint(datacenter='datacenter01', network='private') self.assertEqual(endpoint, 'https://private_endpoint') endpoint = self.manager.get_endpoint(datacenter='datacenter01', network='private') self.assertEqual(endpoint, 'https://private_endpoint') # ERROR CASES self.assertRaises( TypeError, self.manager.get_endpoint, datacenter='doesnotexist') self.assertRaises( TypeError, self.manager.get_endpoint, network='doesnotexist') @patch('SoftLayer.managers.messaging.MessagingConnection') def test_get_connection(self, conn): queue_conn = self.manager.get_connection('QUEUE_ACCOUNT_ID') conn.assert_called_with( 'QUEUE_ACCOUNT_ID', endpoint='https://dal05.mq.softlayer.net') conn().authenticate.assert_called_with( self.client.auth.username, self.client.auth.api_key) self.assertEqual(queue_conn, conn()) def test_get_connection_no_auth(self): self.client.auth = None self.assertRaises(SoftLayerError, self.manager.get_connection, 'QUEUE_ACCOUNT_ID') def test_get_connection_no_username(self): self.client.auth.username = None self.assertRaises(SoftLayerError, self.manager.get_connection, 'QUEUE_ACCOUNT_ID') def test_get_connection_no_api_key(self): self.client.auth.api_key = None self.assertRaises(SoftLayerError, self.manager.get_connection, 'QUEUE_ACCOUNT_ID') @patch('SoftLayer.managers.messaging.requests.get') def test_ping(self, get): result = self.manager.ping() get.assert_called_with('https://dal05.mq.softlayer.net/v1/ping') get().raise_for_status.assert_called_with() self.assertTrue(result)