Skip to content

Workaround for async cred for browser auth #170

Workaround for async cred for browser auth

Workaround for async cred for browser auth #170

This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / Test Results failed Nov 21, 2023 in 0s

5 fail, 19 skipped, 261 pass in 19m 10s

       5 files  ±0         5 suites  ±0   19m 10s ⏱️ + 3m 51s
   285 tests ±0     261 ✔️  -   4  19 💤 ±0    5 +  4 
1 425 runs  ±0  1 305 ✔️  - 20  95 💤 ±0  25 +20 

Results for commit 4d04bd2. ± Comparison against earlier commit 20ae9cc.

Annotations

Check warning on line 0 in azure-kusto-data.tests.test_e2e_data.TestE2E

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs failed: test_cloud_info (azure-kusto-data.tests.test_e2e_data.TestE2E)

artifacts/Unit Test Results (Python 3.10)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.11)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.7)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.8)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.9)/pytest.xml [took 0s]
Raw output
AssertionError: assert CloudInfo(log...5f571e91255a') == CloudInfo(log...5f571e91255a')
  
  Omitting 5 identical items, use -vv to show
  Differing attributes:
  ['kusto_client_redirect_uri']
  
  Drill down into differing attribute kusto_client_redirect_uri:
    kusto_client_redirect_uri: 'http://localhost' != 'https://microsoft/kustoclient'
    - https://microsoft/kustoclient
    + http://localhost
self = <tests.test_e2e_data.TestE2E object at 0x7f48e3ea6680>

    def test_cloud_info(self):
        cloud_info = CloudSettings.get_cloud_info_for_cluster(self.engine_cs)
        assert cloud_info is not CloudSettings.DEFAULT_CLOUD
>       assert cloud_info == CloudSettings.DEFAULT_CLOUD
E       AssertionError: assert CloudInfo(log...5f571e91255a') == CloudInfo(log...5f571e91255a')
E         
E         Omitting 5 identical items, use -vv to show
E         Differing attributes:
E         ['kusto_client_redirect_uri']
E         
E         Drill down into differing attribute kusto_client_redirect_uri:
E           kusto_client_redirect_uri: 'http://localhost' != 'https://microsoft/kustoclient'
E           - https://microsoft/kustoclient
E           + http://localhost

azure-kusto-data/tests/test_e2e_data.py:338: AssertionError

Check warning on line 0 in azure-kusto-data.tests.test_e2e_data.TestE2E

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs failed: test_no_redirects_fail_in_client[301] (azure-kusto-data.tests.test_e2e_data.TestE2E)

artifacts/Unit Test Results (Python 3.10)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.11)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.7)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.8)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.9)/pytest.xml [took 0s]
Raw output
azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')
args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
>           return fn(*args, **kwargs)

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/client_credential_base.py:40: in _request_token
    result = app.acquire_token_for_client(list(scopes), claims_challenge=kwargs.pop("claims", None))
../../../.local/lib/python3.10/site-packages/msal/application.py:2119: in acquire_token_for_client
    return _clean_up(self._acquire_token_silent_with_error(
../../../.local/lib/python3.10/site-packages/msal/application.py:1302: in _acquire_token_silent_with_error
    result = self._acquire_token_silent_from_cache_and_possibly_refresh_it(
../../../.local/lib/python3.10/site-packages/msal/application.py:1430: in _acquire_token_silent_from_cache_and_possibly_refresh_it
    result = self._acquire_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/application.py:2138: in _acquire_token_for_client
    response = client.obtain_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:752: in obtain_token_for_client
    return self._obtain_token("client_credentials", data=data, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oidc.py:116: in _obtain_token
    ret = super(Client, self)._obtain_token(grant_type, *args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:771: in _obtain_token
    resp = super(Client, self)._obtain_token(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:234: in _obtain_token
    resp = (post or self._http_client.post)(
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/msal_client.py:99: in post
    response = self._pipeline.run(request, stream=False, retry_on_methods=_POST)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:230: in run
    return first_node.send(pipeline_request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/policies/_retry.py:531: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:119: in send
    self._sender.send(request.http_request, **request.context.options),
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.core.pipeline.transport._requests_basic.RequestsTransport object at 0x7f48d4b04520>
request = <HttpRequest [POST], url: 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token'>
kwargs = {'stream': False}, response = None, error = None
connection_timeout = 300, timeout = (300, 300), read_timeout = 300

    def send(self, request: Union[HttpRequest, "RestHttpRequest"], **kwargs) -> Union[HttpResponse, "RestHttpResponse"]:
        """Send request object according to configuration.
    
        :param request: The request object to be sent.
        :type request: ~azure.core.pipeline.transport.HttpRequest
        :return: An HTTPResponse object.
        :rtype: ~azure.core.pipeline.transport.HttpResponse
    
        :keyword requests.Session session: will override the driver session and use yours.
         Should NOT be done unless really required. Anything else is sent straight to requests.
        :keyword dict proxies: will define the proxy to use. Proxy is a dict (protocol, url)
        """
        self.open()
        response = None
        error: Optional[AzureErrorUnion] = None
    
        try:
            connection_timeout = kwargs.pop("connection_timeout", self.connection_config.timeout)
    
            if isinstance(connection_timeout, tuple):
                if "read_timeout" in kwargs:
                    raise ValueError("Cannot set tuple connection_timeout and read_timeout together")
                _LOGGER.warning("Tuple timeout setting is deprecated")
                timeout = connection_timeout
            else:
                read_timeout = kwargs.pop("read_timeout", self.connection_config.read_timeout)
                timeout = (connection_timeout, read_timeout)
>           response = self.session.request(  # type: ignore
                request.method,
                request.url,
                headers=request.headers,
                data=request.data,
                files=request.files,
                verify=kwargs.pop("connection_verify", self.connection_config.verify),
                timeout=timeout,
                cert=kwargs.pop("connection_cert", self.connection_config.cert),
                allow_redirects=False,
                **kwargs
            )
E           AttributeError: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/core/pipeline/transport/_requests_basic.py:343: AttributeError

The above exception was the direct cause of the following exception:

self = <azure.kusto.data.security._AadHelper object at 0x7f48d4a00c40>

    async def acquire_authorization_header_async(self):
        try:
>           return _get_header_from_dict(await self.token_provider.get_token_async())

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:196: in get_token_async
    return await _get_token_async()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:190: in _get_token_async
    token = await MonitoredActivity.invoke_async(
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_telemetry.py:127: in invoke_async
    return await span()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:657: in _get_token_impl_async
    t = await sync_to_async(self.credential.get_token)(self._scopes[0])
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:479: in __call__
    ret: _R = await loop.run_in_executor(
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:538: in thread_handler
    return func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/default.py:219: in get_token
    token = self._successful_credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:33: in wrapper
    token = fn(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/environment.py:151: in get_token
    return self._credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/get_token_mixin.py:86: in get_token
    token = self._request_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
            return fn(*args, **kwargs)
        except ClientAuthenticationError:
            raise
        except Exception as ex:  # pylint:disable=broad-except
            auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex))
>           raise auth_error from ex
E           azure.core.exceptions.ClientAuthenticationError: Authentication failed: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:84: ClientAuthenticationError

During handling of the above exception, another exception occurred:

self = <tests.test_e2e_data.TestE2E object at 0x7f48e3ea6e60>, code = 301

    @pytest.mark.asyncio
    @pytest.mark.parametrize("code", [301, 302, 307, 308])
    async def test_no_redirects_fail_in_client(self, code):
        well_known_kusto_endpoints.add_trusted_hosts([MatchRule("statusreturner.azurewebsites.net", False)], False)
        async with AsyncKustoClient(
            KustoConnectionStringBuilder.with_azure_token_credential(f"https://statusreturner.azurewebsites.net/{code}/segment", self.async_cred)
        ) as client:
            with pytest.raises(KustoServiceError) as ex:
>               await client.execute("db", "table")

azure-kusto-data/tests/test_e2e_data.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:50: in execute
    return await self.execute_query(database, query, properties)
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:58: in execute_query
    return await self._execute(self._query_endpoint, database, query, None, KustoClient._query_default_timeout, properties)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:145: in _execute
    request_headers["Authorization"] = await self._aad_helper.acquire_authorization_header_async()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.kusto.data.security._AadHelper object at 0x7f48d4a00c40>

    async def acquire_authorization_header_async(self):
        try:
            return _get_header_from_dict(await self.token_provider.get_token_async())
        except Exception as error:
            kwargs = await self.token_provider.context_async()
            kwargs["resource"] = self.kusto_uri
>           raise KustoAuthenticationError(self.token_provider.name(), error, **kwargs)
E           azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:92: KustoAuthenticationError

Check warning on line 0 in azure-kusto-data.tests.test_e2e_data.TestE2E

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs failed: test_no_redirects_fail_in_client[302] (azure-kusto-data.tests.test_e2e_data.TestE2E)

artifacts/Unit Test Results (Python 3.10)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.11)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.7)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.8)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.9)/pytest.xml [took 0s]
Raw output
azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')
args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
>           return fn(*args, **kwargs)

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/client_credential_base.py:40: in _request_token
    result = app.acquire_token_for_client(list(scopes), claims_challenge=kwargs.pop("claims", None))
../../../.local/lib/python3.10/site-packages/msal/application.py:2119: in acquire_token_for_client
    return _clean_up(self._acquire_token_silent_with_error(
../../../.local/lib/python3.10/site-packages/msal/application.py:1302: in _acquire_token_silent_with_error
    result = self._acquire_token_silent_from_cache_and_possibly_refresh_it(
../../../.local/lib/python3.10/site-packages/msal/application.py:1430: in _acquire_token_silent_from_cache_and_possibly_refresh_it
    result = self._acquire_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/application.py:2138: in _acquire_token_for_client
    response = client.obtain_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:752: in obtain_token_for_client
    return self._obtain_token("client_credentials", data=data, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oidc.py:116: in _obtain_token
    ret = super(Client, self)._obtain_token(grant_type, *args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:771: in _obtain_token
    resp = super(Client, self)._obtain_token(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:234: in _obtain_token
    resp = (post or self._http_client.post)(
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/msal_client.py:99: in post
    response = self._pipeline.run(request, stream=False, retry_on_methods=_POST)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:230: in run
    return first_node.send(pipeline_request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/policies/_retry.py:531: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:119: in send
    self._sender.send(request.http_request, **request.context.options),
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.core.pipeline.transport._requests_basic.RequestsTransport object at 0x7f48d4b04520>
request = <HttpRequest [POST], url: 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token'>
kwargs = {'stream': False}, response = None, error = None
connection_timeout = 300, timeout = (300, 300), read_timeout = 300

    def send(self, request: Union[HttpRequest, "RestHttpRequest"], **kwargs) -> Union[HttpResponse, "RestHttpResponse"]:
        """Send request object according to configuration.
    
        :param request: The request object to be sent.
        :type request: ~azure.core.pipeline.transport.HttpRequest
        :return: An HTTPResponse object.
        :rtype: ~azure.core.pipeline.transport.HttpResponse
    
        :keyword requests.Session session: will override the driver session and use yours.
         Should NOT be done unless really required. Anything else is sent straight to requests.
        :keyword dict proxies: will define the proxy to use. Proxy is a dict (protocol, url)
        """
        self.open()
        response = None
        error: Optional[AzureErrorUnion] = None
    
        try:
            connection_timeout = kwargs.pop("connection_timeout", self.connection_config.timeout)
    
            if isinstance(connection_timeout, tuple):
                if "read_timeout" in kwargs:
                    raise ValueError("Cannot set tuple connection_timeout and read_timeout together")
                _LOGGER.warning("Tuple timeout setting is deprecated")
                timeout = connection_timeout
            else:
                read_timeout = kwargs.pop("read_timeout", self.connection_config.read_timeout)
                timeout = (connection_timeout, read_timeout)
>           response = self.session.request(  # type: ignore
                request.method,
                request.url,
                headers=request.headers,
                data=request.data,
                files=request.files,
                verify=kwargs.pop("connection_verify", self.connection_config.verify),
                timeout=timeout,
                cert=kwargs.pop("connection_cert", self.connection_config.cert),
                allow_redirects=False,
                **kwargs
            )
E           AttributeError: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/core/pipeline/transport/_requests_basic.py:343: AttributeError

The above exception was the direct cause of the following exception:

self = <azure.kusto.data.security._AadHelper object at 0x7f48d0c43e50>

    async def acquire_authorization_header_async(self):
        try:
>           return _get_header_from_dict(await self.token_provider.get_token_async())

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:196: in get_token_async
    return await _get_token_async()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:190: in _get_token_async
    token = await MonitoredActivity.invoke_async(
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_telemetry.py:127: in invoke_async
    return await span()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:657: in _get_token_impl_async
    t = await sync_to_async(self.credential.get_token)(self._scopes[0])
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:479: in __call__
    ret: _R = await loop.run_in_executor(
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:538: in thread_handler
    return func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/default.py:219: in get_token
    token = self._successful_credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:33: in wrapper
    token = fn(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/environment.py:151: in get_token
    return self._credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/get_token_mixin.py:86: in get_token
    token = self._request_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
            return fn(*args, **kwargs)
        except ClientAuthenticationError:
            raise
        except Exception as ex:  # pylint:disable=broad-except
            auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex))
>           raise auth_error from ex
E           azure.core.exceptions.ClientAuthenticationError: Authentication failed: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:84: ClientAuthenticationError

During handling of the above exception, another exception occurred:

self = <tests.test_e2e_data.TestE2E object at 0x7f48e3ea6fe0>, code = 302

    @pytest.mark.asyncio
    @pytest.mark.parametrize("code", [301, 302, 307, 308])
    async def test_no_redirects_fail_in_client(self, code):
        well_known_kusto_endpoints.add_trusted_hosts([MatchRule("statusreturner.azurewebsites.net", False)], False)
        async with AsyncKustoClient(
            KustoConnectionStringBuilder.with_azure_token_credential(f"https://statusreturner.azurewebsites.net/{code}/segment", self.async_cred)
        ) as client:
            with pytest.raises(KustoServiceError) as ex:
>               await client.execute("db", "table")

azure-kusto-data/tests/test_e2e_data.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:50: in execute
    return await self.execute_query(database, query, properties)
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:58: in execute_query
    return await self._execute(self._query_endpoint, database, query, None, KustoClient._query_default_timeout, properties)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:145: in _execute
    request_headers["Authorization"] = await self._aad_helper.acquire_authorization_header_async()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.kusto.data.security._AadHelper object at 0x7f48d0c43e50>

    async def acquire_authorization_header_async(self):
        try:
            return _get_header_from_dict(await self.token_provider.get_token_async())
        except Exception as error:
            kwargs = await self.token_provider.context_async()
            kwargs["resource"] = self.kusto_uri
>           raise KustoAuthenticationError(self.token_provider.name(), error, **kwargs)
E           azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:92: KustoAuthenticationError

Check warning on line 0 in azure-kusto-data.tests.test_e2e_data.TestE2E

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs failed: test_no_redirects_fail_in_client[307] (azure-kusto-data.tests.test_e2e_data.TestE2E)

artifacts/Unit Test Results (Python 3.10)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.11)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.7)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.8)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.9)/pytest.xml [took 0s]
Raw output
azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')
args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
>           return fn(*args, **kwargs)

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/client_credential_base.py:40: in _request_token
    result = app.acquire_token_for_client(list(scopes), claims_challenge=kwargs.pop("claims", None))
../../../.local/lib/python3.10/site-packages/msal/application.py:2119: in acquire_token_for_client
    return _clean_up(self._acquire_token_silent_with_error(
../../../.local/lib/python3.10/site-packages/msal/application.py:1302: in _acquire_token_silent_with_error
    result = self._acquire_token_silent_from_cache_and_possibly_refresh_it(
../../../.local/lib/python3.10/site-packages/msal/application.py:1430: in _acquire_token_silent_from_cache_and_possibly_refresh_it
    result = self._acquire_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/application.py:2138: in _acquire_token_for_client
    response = client.obtain_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:752: in obtain_token_for_client
    return self._obtain_token("client_credentials", data=data, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oidc.py:116: in _obtain_token
    ret = super(Client, self)._obtain_token(grant_type, *args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:771: in _obtain_token
    resp = super(Client, self)._obtain_token(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:234: in _obtain_token
    resp = (post or self._http_client.post)(
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/msal_client.py:99: in post
    response = self._pipeline.run(request, stream=False, retry_on_methods=_POST)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:230: in run
    return first_node.send(pipeline_request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/policies/_retry.py:531: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:119: in send
    self._sender.send(request.http_request, **request.context.options),
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.core.pipeline.transport._requests_basic.RequestsTransport object at 0x7f48d4b04520>
request = <HttpRequest [POST], url: 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token'>
kwargs = {'stream': False}, response = None, error = None
connection_timeout = 300, timeout = (300, 300), read_timeout = 300

    def send(self, request: Union[HttpRequest, "RestHttpRequest"], **kwargs) -> Union[HttpResponse, "RestHttpResponse"]:
        """Send request object according to configuration.
    
        :param request: The request object to be sent.
        :type request: ~azure.core.pipeline.transport.HttpRequest
        :return: An HTTPResponse object.
        :rtype: ~azure.core.pipeline.transport.HttpResponse
    
        :keyword requests.Session session: will override the driver session and use yours.
         Should NOT be done unless really required. Anything else is sent straight to requests.
        :keyword dict proxies: will define the proxy to use. Proxy is a dict (protocol, url)
        """
        self.open()
        response = None
        error: Optional[AzureErrorUnion] = None
    
        try:
            connection_timeout = kwargs.pop("connection_timeout", self.connection_config.timeout)
    
            if isinstance(connection_timeout, tuple):
                if "read_timeout" in kwargs:
                    raise ValueError("Cannot set tuple connection_timeout and read_timeout together")
                _LOGGER.warning("Tuple timeout setting is deprecated")
                timeout = connection_timeout
            else:
                read_timeout = kwargs.pop("read_timeout", self.connection_config.read_timeout)
                timeout = (connection_timeout, read_timeout)
>           response = self.session.request(  # type: ignore
                request.method,
                request.url,
                headers=request.headers,
                data=request.data,
                files=request.files,
                verify=kwargs.pop("connection_verify", self.connection_config.verify),
                timeout=timeout,
                cert=kwargs.pop("connection_cert", self.connection_config.cert),
                allow_redirects=False,
                **kwargs
            )
E           AttributeError: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/core/pipeline/transport/_requests_basic.py:343: AttributeError

The above exception was the direct cause of the following exception:

self = <azure.kusto.data.security._AadHelper object at 0x7f48d45e7b80>

    async def acquire_authorization_header_async(self):
        try:
>           return _get_header_from_dict(await self.token_provider.get_token_async())

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:196: in get_token_async
    return await _get_token_async()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:190: in _get_token_async
    token = await MonitoredActivity.invoke_async(
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_telemetry.py:127: in invoke_async
    return await span()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:657: in _get_token_impl_async
    t = await sync_to_async(self.credential.get_token)(self._scopes[0])
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:479: in __call__
    ret: _R = await loop.run_in_executor(
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:538: in thread_handler
    return func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/default.py:219: in get_token
    token = self._successful_credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:33: in wrapper
    token = fn(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/environment.py:151: in get_token
    return self._credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/get_token_mixin.py:86: in get_token
    token = self._request_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
            return fn(*args, **kwargs)
        except ClientAuthenticationError:
            raise
        except Exception as ex:  # pylint:disable=broad-except
            auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex))
>           raise auth_error from ex
E           azure.core.exceptions.ClientAuthenticationError: Authentication failed: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:84: ClientAuthenticationError

During handling of the above exception, another exception occurred:

self = <tests.test_e2e_data.TestE2E object at 0x7f48e3ea7070>, code = 307

    @pytest.mark.asyncio
    @pytest.mark.parametrize("code", [301, 302, 307, 308])
    async def test_no_redirects_fail_in_client(self, code):
        well_known_kusto_endpoints.add_trusted_hosts([MatchRule("statusreturner.azurewebsites.net", False)], False)
        async with AsyncKustoClient(
            KustoConnectionStringBuilder.with_azure_token_credential(f"https://statusreturner.azurewebsites.net/{code}/segment", self.async_cred)
        ) as client:
            with pytest.raises(KustoServiceError) as ex:
>               await client.execute("db", "table")

azure-kusto-data/tests/test_e2e_data.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:50: in execute
    return await self.execute_query(database, query, properties)
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:58: in execute_query
    return await self._execute(self._query_endpoint, database, query, None, KustoClient._query_default_timeout, properties)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:145: in _execute
    request_headers["Authorization"] = await self._aad_helper.acquire_authorization_header_async()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.kusto.data.security._AadHelper object at 0x7f48d45e7b80>

    async def acquire_authorization_header_async(self):
        try:
            return _get_header_from_dict(await self.token_provider.get_token_async())
        except Exception as error:
            kwargs = await self.token_provider.context_async()
            kwargs["resource"] = self.kusto_uri
>           raise KustoAuthenticationError(self.token_provider.name(), error, **kwargs)
E           azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:92: KustoAuthenticationError

Check warning on line 0 in azure-kusto-data.tests.test_e2e_data.TestE2E

See this annotation in the file changed.

@github-actions github-actions / Test Results

All 5 runs failed: test_no_redirects_fail_in_client[308] (azure-kusto-data.tests.test_e2e_data.TestE2E)

artifacts/Unit Test Results (Python 3.10)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.11)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.7)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.8)/pytest.xml [took 0s]
artifacts/Unit Test Results (Python 3.9)/pytest.xml [took 0s]
Raw output
azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')
args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
>           return fn(*args, **kwargs)

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/client_credential_base.py:40: in _request_token
    result = app.acquire_token_for_client(list(scopes), claims_challenge=kwargs.pop("claims", None))
../../../.local/lib/python3.10/site-packages/msal/application.py:2119: in acquire_token_for_client
    return _clean_up(self._acquire_token_silent_with_error(
../../../.local/lib/python3.10/site-packages/msal/application.py:1302: in _acquire_token_silent_with_error
    result = self._acquire_token_silent_from_cache_and_possibly_refresh_it(
../../../.local/lib/python3.10/site-packages/msal/application.py:1430: in _acquire_token_silent_from_cache_and_possibly_refresh_it
    result = self._acquire_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/application.py:2138: in _acquire_token_for_client
    response = client.obtain_token_for_client(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:752: in obtain_token_for_client
    return self._obtain_token("client_credentials", data=data, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oidc.py:116: in _obtain_token
    ret = super(Client, self)._obtain_token(grant_type, *args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:771: in _obtain_token
    resp = super(Client, self)._obtain_token(
../../../.local/lib/python3.10/site-packages/msal/oauth2cli/oauth2.py:234: in _obtain_token
    resp = (post or self._http_client.post)(
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/msal/individual_cache.py:269: in wrapper
    value = function(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/msal_client.py:99: in post
    response = self._pipeline.run(request, stream=False, retry_on_methods=_POST)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:230: in run
    return first_node.send(pipeline_request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/policies/_retry.py:531: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:86: in send
    response = self.next.send(request)
../../../.local/lib/python3.10/site-packages/azure/core/pipeline/_base.py:119: in send
    self._sender.send(request.http_request, **request.context.options),
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.core.pipeline.transport._requests_basic.RequestsTransport object at 0x7f48d4b04520>
request = <HttpRequest [POST], url: 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token'>
kwargs = {'stream': False}, response = None, error = None
connection_timeout = 300, timeout = (300, 300), read_timeout = 300

    def send(self, request: Union[HttpRequest, "RestHttpRequest"], **kwargs) -> Union[HttpResponse, "RestHttpResponse"]:
        """Send request object according to configuration.
    
        :param request: The request object to be sent.
        :type request: ~azure.core.pipeline.transport.HttpRequest
        :return: An HTTPResponse object.
        :rtype: ~azure.core.pipeline.transport.HttpResponse
    
        :keyword requests.Session session: will override the driver session and use yours.
         Should NOT be done unless really required. Anything else is sent straight to requests.
        :keyword dict proxies: will define the proxy to use. Proxy is a dict (protocol, url)
        """
        self.open()
        response = None
        error: Optional[AzureErrorUnion] = None
    
        try:
            connection_timeout = kwargs.pop("connection_timeout", self.connection_config.timeout)
    
            if isinstance(connection_timeout, tuple):
                if "read_timeout" in kwargs:
                    raise ValueError("Cannot set tuple connection_timeout and read_timeout together")
                _LOGGER.warning("Tuple timeout setting is deprecated")
                timeout = connection_timeout
            else:
                read_timeout = kwargs.pop("read_timeout", self.connection_config.read_timeout)
                timeout = (connection_timeout, read_timeout)
>           response = self.session.request(  # type: ignore
                request.method,
                request.url,
                headers=request.headers,
                data=request.data,
                files=request.files,
                verify=kwargs.pop("connection_verify", self.connection_config.verify),
                timeout=timeout,
                cert=kwargs.pop("connection_cert", self.connection_config.cert),
                allow_redirects=False,
                **kwargs
            )
E           AttributeError: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/core/pipeline/transport/_requests_basic.py:343: AttributeError

The above exception was the direct cause of the following exception:

self = <azure.kusto.data.security._AadHelper object at 0x7f48d46db460>

    async def acquire_authorization_header_async(self):
        try:
>           return _get_header_from_dict(await self.token_provider.get_token_async())

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:196: in get_token_async
    return await _get_token_async()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:190: in _get_token_async
    token = await MonitoredActivity.invoke_async(
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_telemetry.py:127: in invoke_async
    return await span()
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/_token_providers.py:657: in _get_token_impl_async
    t = await sync_to_async(self.credential.get_token)(self._scopes[0])
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:479: in __call__
    ret: _R = await loop.run_in_executor(
/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
../../../.local/lib/python3.10/site-packages/asgiref/sync.py:538: in thread_handler
    return func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/default.py:219: in get_token
    token = self._successful_credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:33: in wrapper
    token = fn(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_credentials/environment.py:151: in get_token
    return self._credential.get_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/identity/_internal/get_token_mixin.py:86: in get_token
    token = self._request_token(*scopes, claims=claims, tenant_id=tenant_id, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (<azure.identity._credentials.client_secret.ClientSecretCredential object at 0x7f48d4b046d0>, 'https://kusto.dev.kusto.windows.net/.default')
kwargs = {'claims': None, 'tenant_id': None}
auth_error = ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")

    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        try:
            return fn(*args, **kwargs)
        except ClientAuthenticationError:
            raise
        except Exception as ex:  # pylint:disable=broad-except
            auth_error = ClientAuthenticationError(message="Authentication failed: {}".format(ex))
>           raise auth_error from ex
E           azure.core.exceptions.ClientAuthenticationError: Authentication failed: 'NoneType' object has no attribute 'request'

../../../.local/lib/python3.10/site-packages/azure/identity/_internal/decorators.py:84: ClientAuthenticationError

During handling of the above exception, another exception occurred:

self = <tests.test_e2e_data.TestE2E object at 0x7f48e3ea7100>, code = 308

    @pytest.mark.asyncio
    @pytest.mark.parametrize("code", [301, 302, 307, 308])
    async def test_no_redirects_fail_in_client(self, code):
        well_known_kusto_endpoints.add_trusted_hosts([MatchRule("statusreturner.azurewebsites.net", False)], False)
        async with AsyncKustoClient(
            KustoConnectionStringBuilder.with_azure_token_credential(f"https://statusreturner.azurewebsites.net/{code}/segment", self.async_cred)
        ) as client:
            with pytest.raises(KustoServiceError) as ex:
>               await client.execute("db", "table")

azure-kusto-data/tests/test_e2e_data.py:383: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:50: in execute
    return await self.execute_query(database, query, properties)
../../../.local/lib/python3.10/site-packages/azure/core/tracing/decorator_async.py:77: in wrapper_use_tracer
    return await func(*args, **kwargs)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:58: in execute_query
    return await self._execute(self._query_endpoint, database, query, None, KustoClient._query_default_timeout, properties)
../../../.local/lib/python3.10/site-packages/azure/kusto/data/aio/client.py:145: in _execute
    request_headers["Authorization"] = await self._aad_helper.acquire_authorization_header_async()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <azure.kusto.data.security._AadHelper object at 0x7f48d46db460>

    async def acquire_authorization_header_async(self):
        try:
            return _get_header_from_dict(await self.token_provider.get_token_async())
        except Exception as error:
            kwargs = await self.token_provider.context_async()
            kwargs["resource"] = self.kusto_uri
>           raise KustoAuthenticationError(self.token_provider.name(), error, **kwargs)
E           azure.kusto.data.exceptions.KustoAuthenticationError: KustoAuthenticationError('AzureIdentityTokenProvider', 'ClientAuthenticationError("Authentication failed: 'NoneType' object has no attribute 'request'")', '{'credential': <azure.identity._credentials.default.DefaultAzureCredential object at 0x7f48d4b05000>, 'resource': 'https://statusreturner.azurewebsites.net'}')

../../../.local/lib/python3.10/site-packages/azure/kusto/data/security.py:92: KustoAuthenticationError

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results

19 skipped tests found

There are 19 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_app_cert_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_az_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_device_auth_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_msi_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_user_pass_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_app_cert_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_az_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_device_auth_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_interactive_login
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_msi_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_user_pass_provider
azure-kusto-data.tests.test_security ‑ test_interactive_login
azure-kusto-data.tests.test_security ‑ test_msi_auth
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_app_cert_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_az_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_device_auth_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_interactive_login
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_msi_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_user_pass_provider

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results

285 tests found

There are 285 tests, see "Raw output" for the full list of tests.
Raw output
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_app_cert_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_app_key_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_async_lock
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_az_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_azure_identity_token_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_base_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_basic_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_callback_token_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_callback_token_provider_with_async_method
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_cloud_mfa_off
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_cloud_mfa_on
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_device_auth_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_fail_sync_call
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_msi_provider
azure-kusto-data.tests.aio.test_async_token_providers.TestTokenProvider ‑ test_user_pass_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_app_cert_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_app_key_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_app_key_provider_when_url_not_valid
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_az_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_azure_identity_default_token_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_base_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_basic_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_basic_provider_in_thread
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_callback_token_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_cloud_mfa_off
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_cloud_mfa_on
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_device_auth_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_fail_async_call
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_interactive_login
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_msi_provider
azure-kusto-data.tests.aio.test_async_token_providers.TokenProviderTests ‑ test_user_pass_provider
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_admin_then_query
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_dynamic
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_empty_result
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_null_values_in_data
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_partial_results
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[application_key]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[application_token]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[async_token_provider]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[az_cli]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[device]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[interactive_login]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[managed_identity]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[token_provider]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[user_password]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[user_token]
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_raise_network
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_request_id
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_sanity_control_command
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_sanity_data_frame
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_sanity_query
azure-kusto-data.tests.aio.test_kusto_client.TestKustoClient ‑ test_throws_on_close
azure-kusto-data.tests.test_client_request_properties ‑ test_custom_crp_tracing_properties
azure-kusto-data.tests.test_client_request_properties ‑ test_custom_crp_tracing_properties_override_kcsb
azure-kusto-data.tests.test_client_request_properties ‑ test_custom_kcsb_tracing_properties
azure-kusto-data.tests.test_client_request_properties ‑ test_default_tracing_properties
azure-kusto-data.tests.test_client_request_properties ‑ test_properties
azure-kusto-data.tests.test_client_request_properties ‑ test_set_connector_full
azure-kusto-data.tests.test_client_request_properties ‑ test_set_connector_name_and_version
azure-kusto-data.tests.test_client_request_properties ‑ test_set_connector_no_app_version
azure-kusto-data.tests.test_converter.ConverterTests ‑ test_to_datetime
azure-kusto-data.tests.test_converter.ConverterTests ‑ test_to_datetime_fail
azure-kusto-data.tests.test_converter.ConverterTests ‑ test_to_timestamp
azure-kusto-data.tests.test_converter.ConverterTests ‑ test_to_timestamp_fail
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_cloud_info
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_cloud_info_404
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_log_analytics_query
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_log_analytics_query_async
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_client[301]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_client[302]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_client[307]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_client[308]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_cloud[301]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_cloud[302]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_cloud[307]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_no_redirects_fail_in_cloud[308]
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_streaming_query
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_streaming_query_async
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_streaming_query_internal
azure-kusto-data.tests.test_e2e_data.TestE2E ‑ test_streaming_query_internal_async
azure-kusto-data.tests.test_exceptions ‑ test_one_api_error_no_code_fail
azure-kusto-data.tests.test_exceptions ‑ test_one_api_error_no_type_success
azure-kusto-data.tests.test_exceptions ‑ test_parse_one_api_error
azure-kusto-data.tests.test_functional.FunctionalTests ‑ test_column_dont_exist
azure-kusto-data.tests.test_functional.FunctionalTests ‑ test_invalid_table
azure-kusto-data.tests.test_functional.FunctionalTests ‑ test_iterating_after_end
azure-kusto-data.tests.test_functional.FunctionalTests ‑ test_row_equality
azure-kusto-data.tests.test_functional.FunctionalTests ‑ test_valid_response
azure-kusto-data.tests.test_helpers.TestDataFrameFromResultsTable ‑ test_dataframe_from_result_table
azure-kusto-data.tests.test_http_adapter_with_socket_options ‑ test_pickle
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_admin_then_query
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_custom_request_id[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_custom_request_id[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_dynamic[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_dynamic[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_empty_result[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_empty_result[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_identifiable_os[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_identifiable_os[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_null_values_in_data[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_null_values_in_data[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_pandas_bool
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_partial_results[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_partial_results[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[application_key]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[application_token]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[async_token_provider]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[az_cli]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[device]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[interactive_login]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[managed_identity]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[token_provider]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[user_password]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_token_providers[user_token]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_proxy_url_parsing
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_raise_network[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_raise_network[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_sanity_control_command
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_sanity_data_frame[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_sanity_data_frame[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_sanity_query[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_sanity_query[execute_streaming_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_throws_on_close
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_unidentifiable_os[execute_query]
azure-kusto-data.tests.test_kusto_client.TestKustoClient ‑ test_unidentifiable_os[execute_streaming_query]
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_app
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_app_token
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_device_login
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_user
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_user_token
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_aad_user_with_authority
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_add_async_token_provider
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_add_msi
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_add_token_provider
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_initial_catalog
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_initial_catalog_default
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_initial_catalog_explicit_overrides_url
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_initial_catalog_in_url
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_no_credentials
azure-kusto-data.tests.test_kusto_connection_string_builder.KustoConnectionStringBuilderTests ‑ test_url_with_multiple_paths_does_not_set_db
azure-kusto-data.tests.test_models ‑ test_str_and_dates_smoke
azure-kusto-data.tests.test_models ‑ test_to_dict_json
azure-kusto-data.tests.test_security ‑ test_interactive_login
azure-kusto-data.tests.test_security ‑ test_msi_auth
azure-kusto-data.tests.test_security ‑ test_token_provider_auth
azure-kusto-data.tests.test_security ‑ test_unauthorized_exception
azure-kusto-data.tests.test_security ‑ test_user_app_token_auth
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_read_token_of_type
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_read_token_of_type_async
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_reading_token
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_reading_token_async
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_skip
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_skip_async
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_types
azure-kusto-data.tests.test_streaming_query.TestJsonTokenReader ‑ test_types_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_alternative_order
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_alternative_order_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_dynamic
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_dynamic_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_exception_in_row
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_exception_in_row_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_progressive_unsupported
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_progressive_unsupported_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_sanity
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_sanity_async
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_sanity_kusto_streaming_response_dataset
azure-kusto-data.tests.test_streaming_query.TestStreamingQuery ‑ test_sanity_kusto_streaming_response_dataset_async
azure-kusto-data.tests.test_telemetry ‑ test_create_http_attributes
azure-kusto-data.tests.test_telemetry ‑ test_create_ingest_attributes
azure-kusto-data.tests.test_telemetry ‑ test_create_query_attributes
azure-kusto-data.tests.test_telemetry ‑ test_get_client_request_properties_attributes
azure-kusto-data.tests.test_telemetry ‑ test_run_async_behavior
azure-kusto-data.tests.test_telemetry ‑ test_run_async_none_invoker
azure-kusto-data.tests.test_telemetry ‑ test_run_async_valid_invoker
azure-kusto-data.tests.test_telemetry ‑ test_run_none_invoker
azure-kusto-data.tests.test_telemetry ‑ test_run_sync_behavior
azure-kusto-data.tests.test_telemetry ‑ test_run_valid_invoker
azure-kusto-data.tests.test_telemetry ‑ test_tracing_attributes_parameter
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_app_cert_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_app_key_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_app_key_provider_when_url_not_valid
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_az_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_azure_identity_default_token_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_base_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_basic_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_basic_provider_in_thread
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_callback_token_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_cloud_mfa_off
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_cloud_mfa_on
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_device_auth_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_fail_async_call
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_interactive_login
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_msi_provider
azure-kusto-data.tests.test_token_providers.TokenProviderTests ‑ test_user_pass_provider
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_additional_websites
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_data
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_national_clouds
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_negative
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_override
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_proxy_negative_test
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_proxy_test
azure-kusto-data.tests.test_well_known_kusto_endpoints ‑ test_well_known_kusto_endpoints_random_kusto_clusters
azure-kusto-ingest.tests.test_connection_string ‑ test_blob_uri
azure-kusto-ingest.tests.test_connection_string ‑ test_gov_cloud_uri
azure-kusto-ingest.tests.test_connection_string ‑ test_queue_uri
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_gzip_file_without_size
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_unzipped_file_dont_compress
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_unzipped_file_with_size
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_unzipped_file_without_size
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_uuid_blob_descriptor
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_uuid_file_descriptor
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_uuid_stream_descriptor
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_zip_file_without_size
azure-kusto-ingest.tests.test_descriptors.TestDescriptors ‑ test_zipped_file_with_size
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_csv_ingest_existing_table[ManagedStreaming]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_csv_ingest_existing_table[NormalClient]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_csv_ingest_ignore_first_record[ManagedStreaming]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_csv_ingest_ignore_first_record[NormalClient]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_ingest_blob
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_ingest_complicated_props
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_ingest_from_stream[ManagedStreaming]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_ingest_from_stream[NormalClient]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_json_ingest_existing_table
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_json_ingest_existing_table_no_mapping
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_json_ingestion_ingest_by_tag
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_csv_file
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_csv_io_streams
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_dataframe
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_json_file
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_json_io_streams
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_opened_file[ManagedStreaming]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_streaming_ingest_from_opened_file[NormalClient]
azure-kusto-ingest.tests.test_e2e_ingest.TestE2E ‑ test_tsv_ingestion_csv_mapping
azure-kusto-ingest.tests.test_ingest_telemetry ‑ test_get_tracing_attributes
azure-kusto-ingest.tests.test_ingestion_blob_info.IngestionBlobInfoTest ‑ test_blob_csv_mapping_reference
azure-kusto-ingest.tests.test_ingestion_blob_info.IngestionBlobInfoTest ‑ test_blob_info_csv_mapping
azure-kusto-ingest.tests.test_ingestion_blob_info.IngestionBlobInfoTest ‑ test_blob_info_json_mapping
azure-kusto-ingest.tests.test_ingestion_blob_info.IngestionBlobInfoTest ‑ test_blob_json_mapping_reference
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_duplicate_reference_and_column_mappings_raises
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_invalid_no_name
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_invalid_no_path
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_mismatch
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_with_no_properties
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_with_path
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_data_format_with_transform
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_mapping_kind_without_mapping_raises
azure-kusto-ingest.tests.test_ingestion_properties ‑ test_with_constant_value
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_containers
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_ingest_from_file_wrong_endpoint[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_ingest_from_file_wrong_endpoint[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_queue_all_retries_failed[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_queue_all_retries_failed[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_file[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_file[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_file_when_different_storage_accounts[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_file_when_different_storage_accounts[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_stream[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_sanity_ingest_from_stream[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_simple_ingest_from_dataframe[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_ingest_client.TestQueuedIngestClient ‑ test_simple_ingest_from_dataframe[QueuedIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_dataframe[KustoStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_dataframe[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_file[KustoStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_file[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_stream[KustoStreamingIngestClient]
azure-kusto-ingest.tests.test_kusto_streaming_ingest_client.TestKustoStreamingIngestClient ‑ test_streaming_ingest_from_stream[ManagedStreamingIngestClient]
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_blob_ingestion
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_fallback_big_file
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_fallback_big_stream
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_fallback_transient_errors_limit
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_fallback_transient_single_error
azure-kusto-ingest.tests.test_managed_streaming_ingest.TestManagedStreamingIngestClient ‑ test_permanent_error
azure-kusto-ingest.tests.test_status_q.StatusQTests ‑ test_init
azure-kusto-ingest.tests.test_status_q.StatusQTests ‑ test_isempty
azure-kusto-ingest.tests.test_status_q.StatusQTests ‑ test_peek
azure-kusto-ingest.tests.test_status_q.StatusQTests ‑ test_pop
azure-kusto-ingest.tests.test_status_q.StatusQTests ‑ test_pop_unbalanced_queues
azure-kusto-ingest.tests.test_storage_account_set ‑ test_accounts_are_shuffled
azure-kusto-ingest.tests.test_storage_account_set ‑ test_big_break
azure-kusto-ingest.tests.test_storage_account_set ‑ test_buckets_are_recycled
azure-kusto-ingest.tests.test_storage_account_set ‑ test_check_rank_when_all_failure
azure-kusto-ingest.tests.test_storage_account_set ‑ test_check_rank_when_no_data
azure-kusto-ingest.tests.test_storage_account_set ‑ test_check_rank_when_success_rate_is_different
azure-kusto-ingest.tests.test_storage_account_set ‑ test_multiple_results
azure-kusto-ingest.tests.test_storage_account_set ‑ test_old_results_count_for_less