def test_get_clientID_by_owner_internal_error(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = "correctToken"
     mock_response = mock.Mock()
     mock_response.status_code = 500
     mock_get.return_value = mock_response
     url = Client.base_URL + 'apps/by-owner'
     param = {'owner': 'testowner'}
     headers = {'Authorization': 'Bearer correctToken'}
     with self.assertRaises(InternalError):
         client.client_ids_by_owner('testowner')
     mock_get.assert_called_once_with(url, headers=headers, params=param)
     self.assertEqual(0, mock_response.json.call_count)
 def test_get_clientID_by_owner_incorrect_clientID(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = "correctToken"
     mock_response = mock.Mock()
     mock_response.status_code = 404
     mock_response.json.return_value = {
         'message': 'No app exists with given clientID'
     }
     mock_get.return_value = mock_response
     url = Client.base_URL + 'apps/by-owner'
     param = {'owner': 'testowner'}
     headers = {'Authorization': 'Bearer correctToken'}
     with self.assertRaises(ResourceNotFoundError):
         client.client_ids_by_owner('testowner')
     mock_get.assert_called_once_with(url, headers=headers, params=param)
     self.assertEqual(1, mock_response.json.call_count)
 def test_get_clientID_by_owner_expired_token_failure(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = "ExpiredToken"
     # set first requests.get's result
     mock_response = mock.Mock()
     mock_response.status_code = 401
     mock_response.json.return_value = {
         'message': 'Token expired',
     }
     # set request_token()'s result
     mock_response2 = mock.Mock()
     mock_response2.status_code = 200
     mock_response2.json.return_value = {'token': 'newToken'}
     mock_get.side_effect = [
         mock_response, mock_response2, mock_response, mock_response2,
         mock_response
     ]
     # run the test
     with self.assertRaises(AuthenticationError):
         client.client_ids_by_owner('testowner')
     self.assertEqual(5, mock_get.call_count)
     headers = {'Authorization': 'Bearer ExpiredToken'}
     newheaders = {'Authorization': 'Bearer newToken'}
     params = {'owner': 'testowner'}
     call_list = [
         mock.call(self.base_URL + 'apps/by-owner',
                   headers=headers,
                   params=params),
         mock.call(self.base_URL + 'auth/?clientID=' + clientId +
                   '&clientSecret=' + clientSecret),
         mock.call(self.base_URL + 'apps/by-owner',
                   headers=newheaders,
                   params=params),
         mock.call(self.base_URL + 'auth/?clientID=' + clientId +
                   '&clientSecret=' + clientSecret),
         mock.call(self.base_URL + 'apps/by-owner',
                   headers=newheaders,
                   params=params)
     ]
     self.assertEqual(mock_get.call_args_list, call_list)
    def test_get_clientID_by_owner_all_correct(self, mock_get):
        clientId = '0' * 96
        clientSecret = '0' * 71
        client = Client(clientId, clientSecret)
        client.token = "correctToken"
        mock_response = mock.Mock()
        mock_response.status_code = 200
        clientObject = [{
            'clientID': 'test_clientID1'
        }, {
            'clientID': 'test_clientID2'
        }]
        mock_response.json.return_value = clientObject

        mock_get.return_value = mock_response
        headers = {'Authorization': 'Bearer correctToken'}
        url = Client.base_URL + 'apps/by-owner'
        param = {'owner': 'testowner'}
        expected_clientID_array = ['test_clientID1', 'test_clientID2']
        self.assertEqual(client.client_ids_by_owner("testowner"),
                         expected_clientID_array)
        mock_get.assert_called_once_with(url, headers=headers, params=param)