def test_update_owner_expired_token_failure(self, mock_get, mock_put):
        clientId = '0' * 96
        clientSecret = '0' * 71
        client = Client(clientId, clientSecret)
        client.token = "ExpiredToken"
        mock_response = mock.Mock()
        mock_response.status_code = 401
        mock_response.json.return_value = {'message': 'Token expired'}
        mock_put.return_value = mock_response

        mock_response2 = mock.Mock()
        mock_response2.status_code = 200
        mock_response2.json.return_value = {
            'token': 'newToken',
        }
        mock_get.return_value = mock_response2
        with self.assertRaises(AuthenticationError):
            client.update_owner('1', 'testowner')
        self.assertEqual(3, mock_put.call_count)
        self.assertEqual(2, mock_get.call_count)
        headers = {'Authorization': 'Bearer ExpiredToken'}
        newheaders = {'Authorization': 'Bearer newToken'}
        data = {'owner': 'testowner'}
        call_list = [
            mock.call(self.base_URL + 'apps/1', headers=headers, data=data),
            mock.call(self.base_URL + 'apps/1', headers=newheaders, data=data),
            mock.call(self.base_URL + 'apps/1', headers=newheaders, data=data)
        ]
        self.assertEqual(mock_put.call_args_list, call_list)
    def test_update_owner_expired_token_success(self, mock_get, mock_put):
        clientId = '0' * 96
        clientSecret = '0' * 71
        client = Client(clientId, clientSecret)
        client.token = "ExpiredToken"
        mock_response = mock.Mock()
        mock_response.status_code = 401
        mock_response.json.return_value = {'message': 'Token expired'}
        mock_response3 = mock.Mock()
        mock_response3.status_code = 200
        mock_response3.json.return_value = {'message': 'OK'}
        mock_put.side_effect = [mock_response, mock_response3]

        mock_response2 = mock.Mock()
        mock_response2.status_code = 200
        mock_response2.json.return_value = {'token': 'newToken'}
        mock_get.return_value = mock_response2
        self.assertEqual('OK', client.update_owner('1', 'testowner'))
        headers = {'Authorization': 'Bearer ExpiredToken'}
        newheaders = {'Authorization': 'Bearer newToken'}
        data = {'owner': 'testowner'}
        call_list = [
            mock.call(self.base_URL + 'apps/1', headers=headers, data=data),
            mock.call(self.base_URL + 'apps/1', headers=newheaders, data=data)
        ]
        self.assertEqual(mock_put.call_args_list, call_list)
 def test_update_owner_invalid_clientid(self, mock_put):
     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 client id.'
     }
     mock_put.return_value = mock_response
     url = Client.base_URL + 'apps/1'
     headers = {'Authorization': 'Bearer correctToken'}
     data = {'owner': 'testowner'}
     with self.assertRaises(ResourceNotFoundError):
         client.update_owner('1', 'testowner')
     mock_put.assert_called_once_with(url, headers=headers, data=data)
     self.assertEqual(1, mock_response.json.call_count)
 def test_update_owner(self, mock_put):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = "correctToken"
     mock_response = mock.Mock()
     mock_response.status_code = 200
     mock_response.json.return_value = {'message': 'OK'}
     mock_put.return_value = mock_response
     url = Client.base_URL + 'apps/1'
     headers = {'Authorization': 'Bearer correctToken'}
     data = {'owner': 'testowner'}
     self.assertEqual(client.update_owner('1', 'testowner'), 'OK')
     mock_put.assert_called_once_with(url, headers=headers, data=data)