Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: remove load_as_component and update doc #684

Merged
merged 6 commits into from
Oct 20, 2023

fix: use valid deployment name

78ee54a
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

refactor: remove load_as_component and update doc #684

fix: use valid deployment name
78ee54a
Select commit
Loading
Failed to load commit list.
This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++) failed Oct 20, 2023 in 0s

5 fail, 13 skipped, 285 pass in 31m 23s

    2 files  ±0      2 suites  ±0   31m 23s ⏱️ + 6m 1s
303 tests ±0  285 ✔️  - 5  13 💤 ±0  5 +5 
606 runs  ±0  575 ✔️  - 5  26 💤 ±0  5 +5 

Results for commit 78ee54a. ± Comparison against earlier commit 61a85e3.

Annotations

Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

1 out of 2 runs failed: test_basic_flow_run_bulk_without_env (tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure)

artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 5s]
Raw output
azure.core.exceptions.ResourceExistsError: The specified blob already exists.
RequestId:0955ca0f-001e-00fc-7439-03dc75000000
Time:2023-10-20T09:38:21.6209064Z
ErrorCode:BlobAlreadyExists
Content: <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobAlreadyExists</Code><Message>The specified blob already exists.
RequestId:0955ca0f-001e-00fc-7439-03dc75000000
Time:2023-10-20T09:38:21.6209064Z</Message></Error>
self = <sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure object at 0x11f41dcf0>
pf = <promptflow.azure._pf_client.PFClient object at 0x11f590550>
runtime = 'demo-mir'

    def test_basic_flow_run_bulk_without_env(self, pf, runtime) -> None:
        name = str(uuid.uuid4())
>       run_pf_command(
            "run",
            "create",
            "--flow",
            f"{FLOWS_DIR}/web_classification",
            "--data",
            f"{DATAS_DIR}/webClassification3.jsonl",
            "--name",
            name,
            pf=pf,
            runtime=runtime,
        )

tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py:47: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py:36: in run_pf_command
    main()
promptflow/_cli/_pf_azure/entry.py:82: in main
    entry(command_args)
promptflow/_cli/_pf_azure/entry.py:65: in entry
    raise ex
promptflow/_cli/_pf_azure/entry.py:55: in entry
    dispatch_run_commands(args)
promptflow/_cli/_pf_azure/_run.py:388: in dispatch_run_commands
    create_run(
promptflow/_cli/_utils.py:363: in wrapper
    raise e
promptflow/_cli/_utils.py:351: in wrapper
    return func(*args, **kwargs)
promptflow/_cli/_pf/_run.py:608: in create_run
    run = create_func(run=run, stream=stream)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:224: in create_or_update
    rest_obj = self._resolve_dependencies_in_parallel(run=run, runtime=kwargs.get("runtime"), reset=reset)
promptflow/azure/operations/_run_operations.py:920: in _resolve_dependencies_in_parallel
    task_results = [task.result() for task in tasks]
promptflow/azure/operations/_run_operations.py:920: in <listcomp>
    task_results = [task.result() for task in tasks]
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:451: in result
    return self.__get_result()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:403: in __get_result
    raise self._exception
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
promptflow/azure/operations/_run_operations.py:757: in _resolve_flow
    self._flow_operations._resolve_arm_id_or_upload_dependencies(flow=flow, ignore_tools_json=True)
promptflow/azure/operations/_flow_operations.py:95: in _resolve_arm_id_or_upload_dependencies
    self._try_resolve_code_for_flow(flow=flow, ops=ops, ignore_tools_json=ignore_tools_json)
promptflow/azure/operations/_flow_operations.py:156: in _try_resolve_code_for_flow
    uploaded_code_asset, _ = _check_and_upload_path(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:497: in _check_and_upload_path
    uploaded_artifact = _upload_to_datastore(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:382: in _upload_to_datastore
    artifact = upload_artifact(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:241: in upload_artifact
    artifact_info = storage_client.upload(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_blob_storage_helper.py:120: in upload
    upload_directory(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_utils/_asset_utils.py:678: in upload_directory
    future.result()  # access result to propagate any exceptions
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:451: in result
    return self.__get_result()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:403: in __get_result
    raise self._exception
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
    result = self.fn(*self.args, **self.kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_utils/_asset_utils.py:566: in upload_file
    storage_client.container_client.upload_blob(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
    return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_container_client.py:1086: in upload_blob
    blob.upload_blob(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
    return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_blob_client.py:756: in upload_blob
    return upload_block_blob(**options)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_upload_helpers.py:195: in upload_block_blob
    process_storage_error(error)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_shared/response_handlers.py:184: in process_storage_error
    exec("raise error from None")   # pylint: disable=exec-used # nosec
<string>:1: in <module>
    ???
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_upload_helpers.py:105: in upload_block_blob
    response = client.upload(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
    return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_generated/operations/_block_blob_operations.py:864: in upload
    map_error(status_code=response.status_code, response=response, error_map=error_map)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

status_code = 409
response = <RequestsTransportResponse: 409 The specified blob already exists., Content-Type: application/xml>
error_map = {304: <class 'azure.core.exceptions.ResourceNotModifiedError'>, 401: <class 'azure.core.exceptions.ClientAuthenticatio..., 404: <class 'azure.core.exceptions.ResourceNotFoundError'>, 409: <class 'azure.core.exceptions.ResourceExistsError'>}

    def map_error(
        status_code: int, response: _HttpResponseCommonAPI, error_map: Mapping[int, Type[HttpResponseError]]
    ) -> None:
        if not error_map:
            return
        error_type = error_map.get(status_code)
        if not error_type:
            return
        error = error_type(response=response)
>       raise error
E       azure.core.exceptions.ResourceExistsError: The specified blob already exists.
E       RequestId:0955ca0f-001e-00fc-7439-03dc75000000
E       Time:2023-10-20T09:38:21.6209064Z
E       ErrorCode:BlobAlreadyExists
E       Content: <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobAlreadyExists</Code><Message>The specified blob already exists.
E       RequestId:0955ca0f-001e-00fc-7439-03dc75000000
E       Time:2023-10-20T09:38:21.6209064Z</Message></Error>

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/exceptions.py:165: ResourceExistsError

Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

1 out of 2 runs failed: test_basic_evaluation (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)

artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 1m 56s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12a794ca0>
conn = <urllib3.connection.HTTPSConnection object at 0x12a794f10>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "classification_accuracy_evaluation_variant_0_20231020_094046_673078", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '168'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x12a794f10>
preload_content = False, decode_content = False, enforce_content_length = True

    def _make_request(
        self,
        conn: BaseHTTPConnection,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | None = None,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        chunked: bool = False,
        response_conn: BaseHTTPConnection | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        enforce_content_length: bool = True,
    ) -> BaseHTTPResponse:
        """
        Perform a request on a given urllib connection object taken from our
        pool.
    
        :param conn:
            a connection from one of our connection pools
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param url:
            The URL to perform the request on.
    
        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param response_conn:
            Set this to ``None`` if you will handle releasing the connection or
            set the connection to have the response release it.
    
        :param preload_content:
          If True, the response's body will be preloaded during construction.
    
        :param decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.
    
        :param enforce_content_length:
            Enforce content length checking. Body returned by server must match
            value of Content-Length header, if present. Otherwise, raise error.
        """
        self.num_requests += 1
    
        timeout_obj = self._get_timeout(timeout)
        timeout_obj.start_connect()
        conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
    
        try:
            # Trigger any extra validation we need to do.
            try:
>               self._validate_conn(conn)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
    conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
    return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           TimeoutError: [Errno 60] Operation timed out

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError

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

self = <requests.adapters.HTTPAdapter object at 0x12a795240>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
    retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
    raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
    raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
    response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
    raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12a794ca0>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None

    def _raise_timeout(
        self,
        err: BaseSSLError | OSError | SocketTimeout,
        url: str,
        timeout_value: _TYPE_TIMEOUT | None,
    ) -> None:
        """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
    
        if isinstance(err, SocketTimeout):
>           raise ReadTimeoutError(
                self, url, f"Read timed out. (read timeout={timeout_value})"
            ) from err
E           urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError

During handling of the above exception, another exception occurred:

self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x129fd19f0>
pf = <promptflow.azure._pf_client.PFClient object at 0x12a5117b0>
runtime = 'demo-mir'

    def test_basic_evaluation(self, pf, runtime):
        data_path = f"{DATAS_DIR}/webClassification3.jsonl"
    
        run = pf.run(
            flow=f"{FLOWS_DIR}/web_classification",
            data=data_path,
            column_mapping={"url": "${data.url}"},
            variant="${summarize_text_content.variant_0}",
            runtime=runtime,
        )
        assert isinstance(run, Run)
        run = pf.runs.stream(run=run.name)
        assert run.status == RunStatus.COMPLETED
    
>       eval_run = pf.run(
            flow=f"{FLOWS_DIR}/classification_accuracy_evaluation",
            data=data_path,
            run=run,
            column_mapping={"groundtruth": "${data.answer}", "prediction": "${run.outputs.category}"},
            runtime=runtime,
        )

tests/sdk_cli_azure_test/e2etests/test_run_operations.py:72: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
promptflow/azure/_pf_client.py:248: in run
    return self.runs.create_or_update(run=run, **kwargs)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:236: in create_or_update
    return self.get(run=run.name)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
    return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
    response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
    return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
    return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x12a795240>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )
    
        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)
    
        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)
    
            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)
    
            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)
    
            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)
    
            raise ConnectionError(e, request=request)
    
        except ClosedPoolError as e:
            raise ConnectionError(e, request=request)
    
        except _ProxyError as e:
            raise ProxyError(e)
    
        except (_SSLError, _HTTPError) as e:
            if isinstance(e, _SSLError):
                # This branch is for urllib3 versions earlier than v1.22
                raise SSLError(e, request=request)
            elif isinstance(e, ReadTimeoutError):
>               raise ReadTimeout(e, request=request)
E               requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout

Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

1 out of 2 runs failed: test_show_run_details (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)

artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 24s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fc43070>
conn = <urllib3.connection.HTTPSConnection object at 0x11fc430a0>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '137'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x11fc430a0>
preload_content = False, decode_content = False, enforce_content_length = True

    def _make_request(
        self,
        conn: BaseHTTPConnection,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | None = None,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        chunked: bool = False,
        response_conn: BaseHTTPConnection | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        enforce_content_length: bool = True,
    ) -> BaseHTTPResponse:
        """
        Perform a request on a given urllib connection object taken from our
        pool.
    
        :param conn:
            a connection from one of our connection pools
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param url:
            The URL to perform the request on.
    
        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param response_conn:
            Set this to ``None`` if you will handle releasing the connection or
            set the connection to have the response release it.
    
        :param preload_content:
          If True, the response's body will be preloaded during construction.
    
        :param decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.
    
        :param enforce_content_length:
            Enforce content length checking. Body returned by server must match
            value of Content-Length header, if present. Otherwise, raise error.
        """
        self.num_requests += 1
    
        timeout_obj = self._get_timeout(timeout)
        timeout_obj.start_connect()
        conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
    
        try:
            # Trigger any extra validation we need to do.
            try:
>               self._validate_conn(conn)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
    conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
    return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           TimeoutError: [Errno 60] Operation timed out

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError

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

self = <requests.adapters.HTTPAdapter object at 0x11fba76d0>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
    retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
    raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
    raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
    response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
    raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fc43070>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None

    def _raise_timeout(
        self,
        err: BaseSSLError | OSError | SocketTimeout,
        url: str,
        timeout_value: _TYPE_TIMEOUT | None,
    ) -> None:
        """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
    
        if isinstance(err, SocketTimeout):
>           raise ReadTimeoutError(
                self, url, f"Read timed out. (read timeout={timeout_value})"
            ) from err
E           urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError

During handling of the above exception, another exception occurred:

self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x11f67b430>
remote_client = <promptflow.azure._pf_client.PFClient object at 0x11fa791e0>

    def test_show_run_details(self, remote_client):
        run = "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74"
    
        # get first 20 results
        details = remote_client.get_details(run=run, max_results=20)
    
        assert details.shape[0] == 20
    
        # get first 1000 results while it only has 40
>       details = remote_client.get_details(run=run, max_results=1000)

tests/sdk_cli_azure_test/e2etests/test_run_operations.py:215: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
promptflow/azure/_pf_client.py:280: in get_details
    return self.runs.get_details(run=run, max_results=max_results, all_results=all_results)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:350: in get_details
    self._check_cloud_run_completed(run_name=run)
promptflow/azure/operations/_run_operations.py:392: in _check_cloud_run_completed
    run = self.get(run=run_name)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
    return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
    response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
    return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
    return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x11fba76d0>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )
    
        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)
    
        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)
    
            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)
    
            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)
    
            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)
    
            raise ConnectionError(e, request=request)
    
        except ClosedPoolError as e:
            raise ConnectionError(e, request=request)
    
        except _ProxyError as e:
            raise ProxyError(e)
    
        except (_SSLError, _HTTPError) as e:
            if isinstance(e, _SSLError):
                # This branch is for urllib3 versions earlier than v1.22
                raise SSLError(e, request=request)
            elif isinstance(e, ReadTimeoutError):
>               raise ReadTimeout(e, request=request)
E               requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout

Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

1 out of 2 runs failed: test_stream_run_logs (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)

artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 22s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fea3520>
conn = <urllib3.connection.HTTPSConnection object at 0x11fea0400>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '137'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x11fea0400>
preload_content = False, decode_content = False, enforce_content_length = True

    def _make_request(
        self,
        conn: BaseHTTPConnection,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | None = None,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        chunked: bool = False,
        response_conn: BaseHTTPConnection | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        enforce_content_length: bool = True,
    ) -> BaseHTTPResponse:
        """
        Perform a request on a given urllib connection object taken from our
        pool.
    
        :param conn:
            a connection from one of our connection pools
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param url:
            The URL to perform the request on.
    
        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param response_conn:
            Set this to ``None`` if you will handle releasing the connection or
            set the connection to have the response release it.
    
        :param preload_content:
          If True, the response's body will be preloaded during construction.
    
        :param decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.
    
        :param enforce_content_length:
            Enforce content length checking. Body returned by server must match
            value of Content-Length header, if present. Otherwise, raise error.
        """
        self.num_requests += 1
    
        timeout_obj = self._get_timeout(timeout)
        timeout_obj.start_connect()
        conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
    
        try:
            # Trigger any extra validation we need to do.
            try:
>               self._validate_conn(conn)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
    conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
    return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           TimeoutError: [Errno 60] Operation timed out

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError

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

self = <requests.adapters.HTTPAdapter object at 0x11fea0130>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
    retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
    raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
    raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
    response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
    raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fea3520>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None

    def _raise_timeout(
        self,
        err: BaseSSLError | OSError | SocketTimeout,
        url: str,
        timeout_value: _TYPE_TIMEOUT | None,
    ) -> None:
        """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
    
        if isinstance(err, SocketTimeout):
>           raise ReadTimeoutError(
                self, url, f"Read timed out. (read timeout={timeout_value})"
            ) from err
E           urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError

During handling of the above exception, another exception occurred:

self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x11f67a5f0>
remote_client = <promptflow.azure._pf_client.PFClient object at 0x1203f60b0>
pf = <promptflow.azure._pf_client.PFClient object at 0x1203f60b0>

    def test_stream_run_logs(self, remote_client, pf):
        # test get invalid run name
        non_exist_run = str(uuid.uuid4())
        with pytest.raises(RunNotFoundError, match=f"Run {non_exist_run!r} not found"):
            pf.runs.stream(run=non_exist_run)
    
>       run = remote_client.runs.stream(run="4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74")

tests/sdk_cli_azure_test/e2etests/test_run_operations.py:251: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:661: in stream
    run = self.get(run=run)
promptflow/_telemetry/activity.py:138: in wrapper
    return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
    return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
    response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
    return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
    return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x11fea0130>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )
    
        chunked = not (request.body is None or "Content-Length" in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )
    
        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)
    
        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)
    
            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)
    
            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)
    
            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)
    
            raise ConnectionError(e, request=request)
    
        except ClosedPoolError as e:
            raise ConnectionError(e, request=request)
    
        except _ProxyError as e:
            raise ProxyError(e)
    
        except (_SSLError, _HTTPError) as e:
            if isinstance(e, _SSLError):
                # This branch is for urllib3 versions earlier than v1.22
                raise SSLError(e, request=request)
            elif isinstance(e, ReadTimeoutError):
>               raise ReadTimeout(e, request=request)
E               requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)

/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout

Check warning on line 0 in tests.sdk_cli_test.e2etests.test_flow_serve

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

1 out of 2 runs failed: test_serving_api (tests.sdk_cli_test.e2etests.test_flow_serve)

artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 18s]
Raw output
AssertionError: Response code indicates error 400 - {"error":{"code":"UserError","message":"Execution failure in 'echo_my_prompt': (Timeout) Request timed out: HTTPSConnectionPool(host='gpt-test-eus.openai.azure.com', port=443): Read timed out. (read timeout=30)"}}
  
assert 400 == 200
 +  where 400 = <WrapperTestResponse streamed [400 BAD REQUEST]>.status_code
flow_serving_client = <FlaskClient <PromptflowServingApp 'promptflow._sdk._serving.app'>>

    @pytest.mark.usefixtures("flow_serving_client", "setup_local_connection")
    @pytest.mark.e2etest
    def test_serving_api(flow_serving_client):
        response = flow_serving_client.get("/health")
        assert b'{"status":"Healthy","version":"0.0.1"}' in response.data
        response = flow_serving_client.post("/score", data=json.dumps({"text": "hi"}))
>       assert (
            response.status_code == 200
        ), f"Response code indicates error {response.status_code} - {response.data.decode()}"
E       AssertionError: Response code indicates error 400 - {"error":{"code":"UserError","message":"Execution failure in 'echo_my_prompt': (Timeout) Request timed out: HTTPSConnectionPool(host='gpt-test-eus.openai.azure.com', port=443): Read timed out. (read timeout=30)"}}
E         
E       assert 400 == 200
E        +  where 400 = <WrapperTestResponse streamed [400 BAD REQUEST]>.status_code

tests/sdk_cli_test/e2etests/test_flow_serve.py:72: AssertionError

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

13 skipped tests found

There are 13 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_connection_get_create_delete
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_custom_connection_create
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_crud_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_no_variants_remote_file
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_without_variants
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_list_flows
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_failure
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_symbolic
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow_from_remote_storage
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_additional_includes

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)

303 tests found

There are 303 tests, see "Raw output" for the full list of tests.
Raw output
tests.sdk_cli_azure_test.e2etests.test_arm_connection_operations.TestArmConnectionOperations ‑ test_get_connection
tests.sdk_cli_azure_test.e2etests.test_cli.TestCli ‑ test_flow_chat
tests.sdk_cli_azure_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_run_bulk_without_env
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_run_with_remote_data
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_connection_get_create_delete
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_custom_connection_create
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_get_connection
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_list_connection_spec
tests.sdk_cli_azure_test.e2etests.test_flow_in_azure_ml.TestFlowInAzureML ‑ test_flow_as_component[parallel]
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_crud_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_no_variants_remote_file
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_without_variants
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_list_flows
tests.sdk_cli_azure_test.e2etests.test_flow_serve ‑ test_serving_api
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_archive_and_restore_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_failure
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_user_aml_token
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_with_environment
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_basic_evaluation
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_exp_id
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_flow_id_in_submission
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_get_detail_against_partial_fail_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_get_invalid_run_cases
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_input_mapping_with_dict
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_list_runs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_pf_run_with_env_var
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_from_yaml
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_not_exist
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_without_retry
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_data_not_provided
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_display_name_with_macro
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_submission_exception
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_additional_includes
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_connection_overwrite
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_env_overwrite
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_remote_data
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_symbolic
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_without_dump
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_metrics
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_run_details
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_stream_failed_run_logs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_stream_run_logs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_submit_run_user_aml_token
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_tools_json_ignored
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_update_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_vnext_workspace_base_url
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_call_from_extension
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_custom_event
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_log_for_eu_user
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_logging_handler
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_azure_openai_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_cognitive_search_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_cognitive_service_category_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_connection_missing_metadata
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_connection_unknown_category
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_custom_keys_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_default_azure_openai_connection_missing_metadata
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_pf_azure_version
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_archive
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_list_runs
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_restore
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show_details
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show_metrics
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_update
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_visualize
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_ignore_files_in_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow_from_remote_storage
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_yaml_run_with_resources
tests.sdk_cli_azure_test.unittests.test_pf_client_azure.TestPFClientAzure ‑ test_input_output_portal_url_parser
tests.sdk_cli_azure_test.unittests.test_pf_client_azure.TestPFClientAzure ‑ test_wrong_client_parameters
tests.sdk_cli_azure_test.unittests.test_run_entity.TestRun ‑ test_flow_id
tests.sdk_cli_azure_test.unittests.test_run_entity.TestRun ‑ test_input_mapping_types
tests.sdk_cli_azure_test.unittests.test_utils.TestUtils ‑ test_forbidden_new_caller
tests.sdk_cli_azure_test.unittests.test_utils.TestUtils ‑ test_url_parse
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_basic_flow_run
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_basic_flow_run_batch_and_eval
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_chat_flow_with_conditional
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[azure_openai_connection.yaml-expected0-update_item0]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[custom_connection.yaml-expected1-update_item1]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[custom_strong_type_connection.yaml-expected2-update_item2]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_overwrite
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_create_with_set
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_environment_variable_overwrite
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_build
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_chat
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init_intent_copilot
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init_with_connection_and_deployment
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_inputs
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_default_chat_history
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_environment_variable
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_user_defined_chat_history
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_with_exception
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_format_cli_exception
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_init_chat_flow
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_init_eval_flow
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_input_with_dict_val
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_debug_single_node
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_single_node
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_with_additional_includes
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_with_symbolic
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_with_variant
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_run_no_stream_log
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_run_with_stream_log
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_version
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_submit_batch_variant
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_submit_run_with_yaml
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_tool_init
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_visualize_ignore_space
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_connection_get_and_update
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_connection_operations
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_custom_connection_get_and_update
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_upsert_connection_from_file[azure_openai_connection.yaml-expected_updated_item0-expected_secret_item0]
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_upsert_connection_from_file[custom_connection.yaml-expected_updated_item1-expected_secret_item1]
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_get_and_update
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_get_and_update_with_key
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_operations
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_update
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_upsert_connection_from_file[custom_strong_type_connection.yaml-expected_updated_item0-expected_secret_item0]
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker_with_variant
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_flow_only
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_generate_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta_with_pkg_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_validate_generate_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_validation_failed
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_evaluation
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_bulk_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_variant
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_run_bulk
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_connection_overwrite_file
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_connection_overwrite_model
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_create_run_with_tags
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_custom_connection_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_error_message_dump
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_eval_run_not_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_bulk_run_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_demo
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_with_only_static_values
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_detail_against_partial_fail_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_detail_format
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_details
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_metrics_format
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_incomplete_run_visualize
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_input_mapping_source_not_found_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_input_mapping_with_dict
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_pf_run_with_env_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_referenced_output_not_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_resolve_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_bulk_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_data_not_provided
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_display_name
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_dump
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_exist_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_list
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_local_storage_structure
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_logs
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_reference_failed_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_snapshot_with_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection_overwrite_non_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_env_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_stream_incomplete_run_summary
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_stream_run_summary
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_submit_run_from_yaml
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_system_metrics_in_properties
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_visualize_run
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_evaluation_flow_serving_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_serving_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/event-stream, application/json-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/event-stream-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/html-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[text/event-stream, application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[text/event-stream-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/event-stream, application/json-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/event-stream-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/html-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_swagger
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_unknown_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_user_agent
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_generate_tool_meta_in_additional_folder
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_node_test_with_connection_input
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_test_with_exception
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_test_with_symbolic
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_with_aggregation
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_package_tool_with_custom_connection_as_input_value
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_variant
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_node
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_non_english_input
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_streaming_output
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_archive
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_get
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_get_not_exist
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_list_order_by_created_time_desc
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_null_type_and_display_name
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_restore
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_update
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_config_instance
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_config
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_or_set_installation_id
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_workspace_from_config
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_set_config
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[azure_content_safety_connection.yaml-AzureContentSafetyConnection-init_param3-expected3]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[azure_openai_connection.yaml-AzureOpenAIConnection-init_param0-expected0]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[cognitive_search_connection.yaml-CognitiveSearchConnection-init_param4-expected4]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[custom_connection.yaml-CustomConnection-init_param2-expected2]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[form_recognizer_connection.yaml-FormRecognizerConnection-init_param6-expected6]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[openai_connection.yaml-OpenAIConnection-init_param1-expected1]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[qdrant_connection.yaml-QdrantConnection-init_param7-expected7]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[serp_connection.yaml-SerpConnection-init_param5-expected5]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[weaviate_connection.yaml-WeaviateConnection-init_param8-expected8]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_from_env
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_from_env_file_bad_case
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_convert_to_custom_strong_type
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_to_execution_connection_dict
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_validate_and_encrypt_secrets
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_validate_and_interactive_get_secrets
tests.sdk_cli_test.unittests.test_flow_invoker.TestFlowInvoker ‑ test_flow_invoker_custom_connection_provider
tests.sdk_cli_test.unittests.test_flow_invoker.TestFlowInvoker ‑ test_flow_invoker_unsupported_connection_provider
tests.sdk_cli_test.unittests.test_local_storage_operations.TestLocalStorageOperations ‑ test_outputs_padding
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_db_without_schema_info
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_fixed_version
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_across_same_schema_version
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_downgrade
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_mixing
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_upgrade
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_commit
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_exception_during_transaction
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_rollback
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_connection_provider
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_local_azure_connection_extract_workspace
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_pf_client_user_agent
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_data_not_exist_validation_error
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_dot_env_resolve
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_flow_run_with_non_english_inputs
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_invalid_yaml[tests/test_configs/runs/illegal/extra_field.yaml-Unknown field]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_invalid_yaml[tests/test_configs/runs/illegal/non_exist_data.yaml-Can't find directory or file]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_load_run
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections0-Unsupported llm connection overwrite keys]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections2-Node not_exist not found in flow]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections3-Invalid connection overwrite format: 1, only dict is supported.]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[str-Invalid connections overwrite format: str]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_variant
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_variant_context
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_run_bulk_invalid_params
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_submit
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_append_to_dict_action
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_build_sorted_column_widths_tuple_list
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_calculate_column_widths
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_list_of_dict_to_nested_dict
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[1]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[2]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[4]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[8]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_encrypt_decrypt_value
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_connections_dir[/Users/fake_user/anaconda3/envs/pf/bin/python3.10-e3f33eadd9be376014eb75a688930930ca83c056]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_connections_dir[D:\\Tools\\Anaconda3\\envs\\pf\\python.exe-a9620c3cdb7ccf3ec9f4005e5b19c12d1e1fef80]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_flow_tools_json
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_flow_tools_json_expecting_fail
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_10k_data[./tests/test_configs/datas/load_data_cases/10k.jsonl]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_10k_data[./tests/test_configs/datas/load_data_cases/10k]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.csv]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.json]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.jsonl]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.parquet]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.tsv]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_override_connection_config_with_environment_variable
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_refresh_connections_dir
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_resolve_connections_environment_variable_reference
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_snake_to_camel
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_sqlite_retry