diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 7ed8b9a..554e34b 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.29.1"
+ ".": "0.30.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index f4db3cd..86b0bd0 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 8
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/perplexity-ai%2Fperplexity-78325ecc9bdc8e9850866fcdd3be3d209b06f151059c774afc7e6005a1775f09.yml
-openapi_spec_hash: 19a34c8ddd46f81dd0b0850af5ee42f3
-config_hash: c3b93f1bb8fa365d5a83e83b7e13e6c4
+configured_endpoints: 10
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/perplexity-ai%2Fperplexity-e5052719572f5155f4cf704d996e5c7a875700a16f68f2335975ea3d06140b17.yml
+openapi_spec_hash: 97d9df5dc228bb6d71be54212bc5b600
+config_hash: e09a1767e929614701fb498eaaac682d
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 19ac971..2a095d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
+## 0.30.0 (2026-02-23)
+
+Full Changelog: [v0.29.1...v0.30.0](https://github.com/perplexityai/perplexity-py/compare/v0.29.1...v0.30.0)
+
+### Features
+
+* **api:** Add browser and sandbox API endpoints ([f5c3e58](https://github.com/perplexityai/perplexity-py/commit/f5c3e58836feb37a6b9ba366a55811513a8cd28c))
+* **api:** manual updates ([a556321](https://github.com/perplexityai/perplexity-py/commit/a556321ac2ed946bfeccc9912dd20ee71349a34a))
+
+
+### Chores
+
+* **internal:** add request options to SSE classes ([b18a992](https://github.com/perplexityai/perplexity-py/commit/b18a992a0eedca20c38932809e1056dfb8c5b00e))
+* **internal:** remove mock server code ([081b00d](https://github.com/perplexityai/perplexity-py/commit/081b00d6a86f95631caacd16a46ea91c8f6d97b9))
+* update mock server docs ([d6f9a54](https://github.com/perplexityai/perplexity-py/commit/d6f9a5428ecb632baea8705f4eadc1225ba5a9fd))
+
## 0.29.1 (2026-02-12)
Full Changelog: [v0.29.0...v0.29.1](https://github.com/perplexityai/perplexity-py/compare/v0.29.0...v0.29.1)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 186f1c3..f50b0f4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -85,13 +85,6 @@ $ pip install ./path-to-wheel-file.whl
## Running tests
-Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
-
-```sh
-# you will need npm installed
-$ npx prism mock path/to/your/openapi.yml
-```
-
```sh
$ ./scripts/test
```
diff --git a/api.md b/api.md
index 9884d1d..24ee260 100644
--- a/api.md
+++ b/api.md
@@ -3,6 +3,7 @@
```python
from perplexity.types import (
APIPublicSearchResult,
+ BrowserSessionResponse,
ChatMessageInput,
ChatMessageOutput,
Choice,
@@ -92,6 +93,15 @@ Methods:
- client.contextualized_embeddings.create(\*\*params) -> ContextualizedEmbeddingCreateResponse
+# Browser
+
+## Sessions
+
+Methods:
+
+- client.browser.sessions.create() -> BrowserSessionResponse
+- client.browser.sessions.delete(session_id) -> None
+
# Async
## Chat
diff --git a/pyproject.toml b/pyproject.toml
index 0105782..6cd026c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "perplexityai"
-version = "0.29.1"
+version = "0.30.0"
description = "The official Python library for the perplexity API"
dynamic = ["readme"]
license = "Apache-2.0"
diff --git a/scripts/mock b/scripts/mock
deleted file mode 100755
index 0b28f6e..0000000
--- a/scripts/mock
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-cd "$(dirname "$0")/.."
-
-if [[ -n "$1" && "$1" != '--'* ]]; then
- URL="$1"
- shift
-else
- URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)"
-fi
-
-# Check if the URL is empty
-if [ -z "$URL" ]; then
- echo "Error: No OpenAPI spec path/url provided or found in .stats.yml"
- exit 1
-fi
-
-echo "==> Starting mock server with URL ${URL}"
-
-# Run prism mock on the given spec
-if [ "$1" == "--daemon" ]; then
- npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log &
-
- # Wait for server to come online
- echo -n "Waiting for server"
- while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do
- echo -n "."
- sleep 0.1
- done
-
- if grep -q "✖ fatal" ".prism.log"; then
- cat .prism.log
- exit 1
- fi
-
- echo
-else
- npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL"
-fi
diff --git a/scripts/test b/scripts/test
index dbeda2d..39729d0 100755
--- a/scripts/test
+++ b/scripts/test
@@ -4,53 +4,7 @@ set -e
cd "$(dirname "$0")/.."
-RED='\033[0;31m'
-GREEN='\033[0;32m'
-YELLOW='\033[0;33m'
-NC='\033[0m' # No Color
-function prism_is_running() {
- curl --silent "http://localhost:4010" >/dev/null 2>&1
-}
-
-kill_server_on_port() {
- pids=$(lsof -t -i tcp:"$1" || echo "")
- if [ "$pids" != "" ]; then
- kill "$pids"
- echo "Stopped $pids."
- fi
-}
-
-function is_overriding_api_base_url() {
- [ -n "$TEST_API_BASE_URL" ]
-}
-
-if ! is_overriding_api_base_url && ! prism_is_running ; then
- # When we exit this script, make sure to kill the background mock server process
- trap 'kill_server_on_port 4010' EXIT
-
- # Start the dev server
- ./scripts/mock --daemon
-fi
-
-if is_overriding_api_base_url ; then
- echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}"
- echo
-elif ! prism_is_running ; then
- echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server"
- echo -e "running against your OpenAPI spec."
- echo
- echo -e "To run the server, pass in the path or url of your OpenAPI"
- echo -e "spec to the prism command:"
- echo
- echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}"
- echo
-
- exit 1
-else
- echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}"
- echo
-fi
export DEFER_PYDANTIC_BUILD=false
diff --git a/src/perplexity/_client.py b/src/perplexity/_client.py
index bd84502..eec3b46 100644
--- a/src/perplexity/_client.py
+++ b/src/perplexity/_client.py
@@ -31,12 +31,13 @@
)
if TYPE_CHECKING:
- from .resources import chat, async_, search, responses, embeddings, contextualized_embeddings
+ from .resources import chat, async_, search, browser, responses, embeddings, contextualized_embeddings
from .resources.search import SearchResource, AsyncSearchResource
from .resources.chat.chat import ChatResource, AsyncChatResource
from .resources.responses import ResponsesResource, AsyncResponsesResource
from .resources.embeddings import EmbeddingsResource, AsyncEmbeddingsResource
from .resources.async_.async_ import AsyncResource, AsyncAsyncResource
+ from .resources.browser.browser import BrowserResource, AsyncBrowserResource
from .resources.contextualized_embeddings import (
ContextualizedEmbeddingsResource,
AsyncContextualizedEmbeddingsResource,
@@ -141,6 +142,12 @@ def contextualized_embeddings(self) -> ContextualizedEmbeddingsResource:
return ContextualizedEmbeddingsResource(self)
+ @cached_property
+ def browser(self) -> BrowserResource:
+ from .resources.browser import BrowserResource
+
+ return BrowserResource(self)
+
@cached_property
def async_(self) -> AsyncResource:
from .resources.async_ import AsyncResource
@@ -347,6 +354,12 @@ def contextualized_embeddings(self) -> AsyncContextualizedEmbeddingsResource:
return AsyncContextualizedEmbeddingsResource(self)
+ @cached_property
+ def browser(self) -> AsyncBrowserResource:
+ from .resources.browser import AsyncBrowserResource
+
+ return AsyncBrowserResource(self)
+
@cached_property
def async_(self) -> AsyncAsyncResource:
from .resources.async_ import AsyncAsyncResource
@@ -502,6 +515,12 @@ def contextualized_embeddings(self) -> contextualized_embeddings.ContextualizedE
return ContextualizedEmbeddingsResourceWithRawResponse(self._client.contextualized_embeddings)
+ @cached_property
+ def browser(self) -> browser.BrowserResourceWithRawResponse:
+ from .resources.browser import BrowserResourceWithRawResponse
+
+ return BrowserResourceWithRawResponse(self._client.browser)
+
@cached_property
def async_(self) -> async_.AsyncResourceWithRawResponse:
from .resources.async_ import AsyncResourceWithRawResponse
@@ -547,6 +566,12 @@ def contextualized_embeddings(
return AsyncContextualizedEmbeddingsResourceWithRawResponse(self._client.contextualized_embeddings)
+ @cached_property
+ def browser(self) -> browser.AsyncBrowserResourceWithRawResponse:
+ from .resources.browser import AsyncBrowserResourceWithRawResponse
+
+ return AsyncBrowserResourceWithRawResponse(self._client.browser)
+
@cached_property
def async_(self) -> async_.AsyncAsyncResourceWithRawResponse:
from .resources.async_ import AsyncAsyncResourceWithRawResponse
@@ -592,6 +617,12 @@ def contextualized_embeddings(
return ContextualizedEmbeddingsResourceWithStreamingResponse(self._client.contextualized_embeddings)
+ @cached_property
+ def browser(self) -> browser.BrowserResourceWithStreamingResponse:
+ from .resources.browser import BrowserResourceWithStreamingResponse
+
+ return BrowserResourceWithStreamingResponse(self._client.browser)
+
@cached_property
def async_(self) -> async_.AsyncResourceWithStreamingResponse:
from .resources.async_ import AsyncResourceWithStreamingResponse
@@ -637,6 +668,12 @@ def contextualized_embeddings(
return AsyncContextualizedEmbeddingsResourceWithStreamingResponse(self._client.contextualized_embeddings)
+ @cached_property
+ def browser(self) -> browser.AsyncBrowserResourceWithStreamingResponse:
+ from .resources.browser import AsyncBrowserResourceWithStreamingResponse
+
+ return AsyncBrowserResourceWithStreamingResponse(self._client.browser)
+
@cached_property
def async_(self) -> async_.AsyncAsyncResourceWithStreamingResponse:
from .resources.async_ import AsyncAsyncResourceWithStreamingResponse
diff --git a/src/perplexity/_response.py b/src/perplexity/_response.py
index e54740c..3c940cf 100644
--- a/src/perplexity/_response.py
+++ b/src/perplexity/_response.py
@@ -152,6 +152,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
),
response=self.http_response,
client=cast(Any, self._client),
+ options=self._options,
),
)
@@ -162,6 +163,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
cast_to=extract_stream_chunk_type(self._stream_cls),
response=self.http_response,
client=cast(Any, self._client),
+ options=self._options,
),
)
@@ -175,6 +177,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
cast_to=cast_to,
response=self.http_response,
client=cast(Any, self._client),
+ options=self._options,
),
)
diff --git a/src/perplexity/_streaming.py b/src/perplexity/_streaming.py
index 29fa5e0..1c93aa6 100644
--- a/src/perplexity/_streaming.py
+++ b/src/perplexity/_streaming.py
@@ -4,7 +4,7 @@
import json
import inspect
from types import TracebackType
-from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, AsyncIterator, cast
+from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, Optional, AsyncIterator, cast
from typing_extensions import Self, Protocol, TypeGuard, override, get_origin, runtime_checkable
import httpx
@@ -13,6 +13,7 @@
if TYPE_CHECKING:
from ._client import Perplexity, AsyncPerplexity
+ from ._models import FinalRequestOptions
_T = TypeVar("_T")
@@ -22,7 +23,7 @@ class Stream(Generic[_T]):
"""Provides the core interface to iterate over a synchronous stream response."""
response: httpx.Response
-
+ _options: Optional[FinalRequestOptions] = None
_decoder: SSEBytesDecoder
def __init__(
@@ -31,10 +32,12 @@ def __init__(
cast_to: type[_T],
response: httpx.Response,
client: Perplexity,
+ options: Optional[FinalRequestOptions] = None,
) -> None:
self.response = response
self._cast_to = cast_to
self._client = client
+ self._options = options
self._decoder = client._make_sse_decoder()
self._iterator = self.__stream__()
@@ -104,7 +107,7 @@ class AsyncStream(Generic[_T]):
"""Provides the core interface to iterate over an asynchronous stream response."""
response: httpx.Response
-
+ _options: Optional[FinalRequestOptions] = None
_decoder: SSEDecoder | SSEBytesDecoder
def __init__(
@@ -113,10 +116,12 @@ def __init__(
cast_to: type[_T],
response: httpx.Response,
client: AsyncPerplexity,
+ options: Optional[FinalRequestOptions] = None,
) -> None:
self.response = response
self._cast_to = cast_to
self._client = client
+ self._options = options
self._decoder = client._make_sse_decoder()
self._iterator = self.__stream__()
diff --git a/src/perplexity/_version.py b/src/perplexity/_version.py
index a0c5adf..aca4a94 100644
--- a/src/perplexity/_version.py
+++ b/src/perplexity/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "perplexity"
-__version__ = "0.29.1" # x-release-please-version
+__version__ = "0.30.0" # x-release-please-version
diff --git a/src/perplexity/resources/__init__.py b/src/perplexity/resources/__init__.py
index 30b55b6..17f6793 100644
--- a/src/perplexity/resources/__init__.py
+++ b/src/perplexity/resources/__init__.py
@@ -24,6 +24,14 @@
SearchResourceWithStreamingResponse,
AsyncSearchResourceWithStreamingResponse,
)
+from .browser import (
+ BrowserResource,
+ AsyncBrowserResource,
+ BrowserResourceWithRawResponse,
+ AsyncBrowserResourceWithRawResponse,
+ BrowserResourceWithStreamingResponse,
+ AsyncBrowserResourceWithStreamingResponse,
+)
from .responses import (
ResponsesResource,
AsyncResponsesResource,
@@ -80,6 +88,12 @@
"AsyncContextualizedEmbeddingsResourceWithRawResponse",
"ContextualizedEmbeddingsResourceWithStreamingResponse",
"AsyncContextualizedEmbeddingsResourceWithStreamingResponse",
+ "BrowserResource",
+ "AsyncBrowserResource",
+ "BrowserResourceWithRawResponse",
+ "AsyncBrowserResourceWithRawResponse",
+ "BrowserResourceWithStreamingResponse",
+ "AsyncBrowserResourceWithStreamingResponse",
"AsyncResource",
"AsyncAsyncResource",
"AsyncResourceWithRawResponse",
diff --git a/src/perplexity/resources/browser/__init__.py b/src/perplexity/resources/browser/__init__.py
new file mode 100644
index 0000000..e401ff7
--- /dev/null
+++ b/src/perplexity/resources/browser/__init__.py
@@ -0,0 +1,33 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from .browser import (
+ BrowserResource,
+ AsyncBrowserResource,
+ BrowserResourceWithRawResponse,
+ AsyncBrowserResourceWithRawResponse,
+ BrowserResourceWithStreamingResponse,
+ AsyncBrowserResourceWithStreamingResponse,
+)
+from .sessions import (
+ SessionsResource,
+ AsyncSessionsResource,
+ SessionsResourceWithRawResponse,
+ AsyncSessionsResourceWithRawResponse,
+ SessionsResourceWithStreamingResponse,
+ AsyncSessionsResourceWithStreamingResponse,
+)
+
+__all__ = [
+ "SessionsResource",
+ "AsyncSessionsResource",
+ "SessionsResourceWithRawResponse",
+ "AsyncSessionsResourceWithRawResponse",
+ "SessionsResourceWithStreamingResponse",
+ "AsyncSessionsResourceWithStreamingResponse",
+ "BrowserResource",
+ "AsyncBrowserResource",
+ "BrowserResourceWithRawResponse",
+ "AsyncBrowserResourceWithRawResponse",
+ "BrowserResourceWithStreamingResponse",
+ "AsyncBrowserResourceWithStreamingResponse",
+]
diff --git a/src/perplexity/resources/browser/browser.py b/src/perplexity/resources/browser/browser.py
new file mode 100644
index 0000000..378e5a5
--- /dev/null
+++ b/src/perplexity/resources/browser/browser.py
@@ -0,0 +1,102 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from .sessions import (
+ SessionsResource,
+ AsyncSessionsResource,
+ SessionsResourceWithRawResponse,
+ AsyncSessionsResourceWithRawResponse,
+ SessionsResourceWithStreamingResponse,
+ AsyncSessionsResourceWithStreamingResponse,
+)
+from ..._compat import cached_property
+from ..._resource import SyncAPIResource, AsyncAPIResource
+
+__all__ = ["BrowserResource", "AsyncBrowserResource"]
+
+
+class BrowserResource(SyncAPIResource):
+ @cached_property
+ def sessions(self) -> SessionsResource:
+ return SessionsResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> BrowserResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#accessing-raw-response-data-eg-headers
+ """
+ return BrowserResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> BrowserResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#with_streaming_response
+ """
+ return BrowserResourceWithStreamingResponse(self)
+
+
+class AsyncBrowserResource(AsyncAPIResource):
+ @cached_property
+ def sessions(self) -> AsyncSessionsResource:
+ return AsyncSessionsResource(self._client)
+
+ @cached_property
+ def with_raw_response(self) -> AsyncBrowserResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#accessing-raw-response-data-eg-headers
+ """
+ return AsyncBrowserResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> AsyncBrowserResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#with_streaming_response
+ """
+ return AsyncBrowserResourceWithStreamingResponse(self)
+
+
+class BrowserResourceWithRawResponse:
+ def __init__(self, browser: BrowserResource) -> None:
+ self._browser = browser
+
+ @cached_property
+ def sessions(self) -> SessionsResourceWithRawResponse:
+ return SessionsResourceWithRawResponse(self._browser.sessions)
+
+
+class AsyncBrowserResourceWithRawResponse:
+ def __init__(self, browser: AsyncBrowserResource) -> None:
+ self._browser = browser
+
+ @cached_property
+ def sessions(self) -> AsyncSessionsResourceWithRawResponse:
+ return AsyncSessionsResourceWithRawResponse(self._browser.sessions)
+
+
+class BrowserResourceWithStreamingResponse:
+ def __init__(self, browser: BrowserResource) -> None:
+ self._browser = browser
+
+ @cached_property
+ def sessions(self) -> SessionsResourceWithStreamingResponse:
+ return SessionsResourceWithStreamingResponse(self._browser.sessions)
+
+
+class AsyncBrowserResourceWithStreamingResponse:
+ def __init__(self, browser: AsyncBrowserResource) -> None:
+ self._browser = browser
+
+ @cached_property
+ def sessions(self) -> AsyncSessionsResourceWithStreamingResponse:
+ return AsyncSessionsResourceWithStreamingResponse(self._browser.sessions)
diff --git a/src/perplexity/resources/browser/sessions.py b/src/perplexity/resources/browser/sessions.py
new file mode 100644
index 0000000..6655ba5
--- /dev/null
+++ b/src/perplexity/resources/browser/sessions.py
@@ -0,0 +1,217 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+import httpx
+
+from ..._types import Body, Query, Headers, NoneType, NotGiven, not_given
+from ..._compat import cached_property
+from ..._resource import SyncAPIResource, AsyncAPIResource
+from ..._response import (
+ to_raw_response_wrapper,
+ to_streamed_response_wrapper,
+ async_to_raw_response_wrapper,
+ async_to_streamed_response_wrapper,
+)
+from ..._base_client import make_request_options
+from ...types.shared.browser_session_response import BrowserSessionResponse
+
+__all__ = ["SessionsResource", "AsyncSessionsResource"]
+
+
+class SessionsResource(SyncAPIResource):
+ @cached_property
+ def with_raw_response(self) -> SessionsResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#accessing-raw-response-data-eg-headers
+ """
+ return SessionsResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> SessionsResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#with_streaming_response
+ """
+ return SessionsResourceWithStreamingResponse(self)
+
+ def create(
+ self,
+ *,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
+ ) -> BrowserSessionResponse:
+ """Create a new remote browser session for CDP-based automation."""
+ return self._post(
+ "/v1/browser/sessions",
+ body={},
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=BrowserSessionResponse,
+ )
+
+ def delete(
+ self,
+ session_id: str,
+ *,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
+ ) -> None:
+ """
+ Stop and clean up a remote browser session.
+
+ Args:
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not session_id:
+ raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
+ return self._delete(
+ f"/v1/browser/sessions/{session_id}",
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=NoneType,
+ )
+
+
+class AsyncSessionsResource(AsyncAPIResource):
+ @cached_property
+ def with_raw_response(self) -> AsyncSessionsResourceWithRawResponse:
+ """
+ This property can be used as a prefix for any HTTP method call to return
+ the raw response object instead of the parsed content.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#accessing-raw-response-data-eg-headers
+ """
+ return AsyncSessionsResourceWithRawResponse(self)
+
+ @cached_property
+ def with_streaming_response(self) -> AsyncSessionsResourceWithStreamingResponse:
+ """
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
+
+ For more information, see https://www.github.com/perplexityai/perplexity-py#with_streaming_response
+ """
+ return AsyncSessionsResourceWithStreamingResponse(self)
+
+ async def create(
+ self,
+ *,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
+ ) -> BrowserSessionResponse:
+ """Create a new remote browser session for CDP-based automation."""
+ return await self._post(
+ "/v1/browser/sessions",
+ body={},
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=BrowserSessionResponse,
+ )
+
+ async def delete(
+ self,
+ session_id: str,
+ *,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
+ ) -> None:
+ """
+ Stop and clean up a remote browser session.
+
+ Args:
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not session_id:
+ raise ValueError(f"Expected a non-empty value for `session_id` but received {session_id!r}")
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
+ return await self._delete(
+ f"/v1/browser/sessions/{session_id}",
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=NoneType,
+ )
+
+
+class SessionsResourceWithRawResponse:
+ def __init__(self, sessions: SessionsResource) -> None:
+ self._sessions = sessions
+
+ self.create = to_raw_response_wrapper(
+ sessions.create,
+ )
+ self.delete = to_raw_response_wrapper(
+ sessions.delete,
+ )
+
+
+class AsyncSessionsResourceWithRawResponse:
+ def __init__(self, sessions: AsyncSessionsResource) -> None:
+ self._sessions = sessions
+
+ self.create = async_to_raw_response_wrapper(
+ sessions.create,
+ )
+ self.delete = async_to_raw_response_wrapper(
+ sessions.delete,
+ )
+
+
+class SessionsResourceWithStreamingResponse:
+ def __init__(self, sessions: SessionsResource) -> None:
+ self._sessions = sessions
+
+ self.create = to_streamed_response_wrapper(
+ sessions.create,
+ )
+ self.delete = to_streamed_response_wrapper(
+ sessions.delete,
+ )
+
+
+class AsyncSessionsResourceWithStreamingResponse:
+ def __init__(self, sessions: AsyncSessionsResource) -> None:
+ self._sessions = sessions
+
+ self.create = async_to_streamed_response_wrapper(
+ sessions.create,
+ )
+ self.delete = async_to_streamed_response_wrapper(
+ sessions.delete,
+ )
diff --git a/src/perplexity/types/__init__.py b/src/perplexity/types/__init__.py
index a9b252f..dcd0ffa 100644
--- a/src/perplexity/types/__init__.py
+++ b/src/perplexity/types/__init__.py
@@ -15,6 +15,7 @@
WebSearchOptions as WebSearchOptions,
ChatMessageOutput as ChatMessageOutput,
APIPublicSearchResult as APIPublicSearchResult,
+ BrowserSessionResponse as BrowserSessionResponse,
ContextualizedEmbeddingObject as ContextualizedEmbeddingObject,
)
from .annotation import Annotation as Annotation
diff --git a/src/perplexity/types/browser/__init__.py b/src/perplexity/types/browser/__init__.py
new file mode 100644
index 0000000..f8ee8b1
--- /dev/null
+++ b/src/perplexity/types/browser/__init__.py
@@ -0,0 +1,3 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
diff --git a/src/perplexity/types/shared/__init__.py b/src/perplexity/types/shared/__init__.py
index 4a3fa01..73a229b 100644
--- a/src/perplexity/types/shared/__init__.py
+++ b/src/perplexity/types/shared/__init__.py
@@ -12,4 +12,5 @@
from .web_search_options import WebSearchOptions as WebSearchOptions
from .chat_message_output import ChatMessageOutput as ChatMessageOutput
from .api_public_search_result import APIPublicSearchResult as APIPublicSearchResult
+from .browser_session_response import BrowserSessionResponse as BrowserSessionResponse
from .contextualized_embedding_object import ContextualizedEmbeddingObject as ContextualizedEmbeddingObject
diff --git a/src/perplexity/types/shared/browser_session_response.py b/src/perplexity/types/shared/browser_session_response.py
new file mode 100644
index 0000000..c5ed327
--- /dev/null
+++ b/src/perplexity/types/shared/browser_session_response.py
@@ -0,0 +1,18 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+from typing_extensions import Literal
+
+from ..._models import BaseModel
+
+__all__ = ["BrowserSessionResponse"]
+
+
+class BrowserSessionResponse(BaseModel):
+ """Response containing browser session details"""
+
+ session_id: Optional[str] = None
+ """Unique identifier for the browser session"""
+
+ status: Optional[Literal["running", "stopped"]] = None
+ """Current status of the session"""
diff --git a/tests/api_resources/async_/chat/test_completions.py b/tests/api_resources/async_/chat/test_completions.py
index 6e9f901..7f7cead 100644
--- a/tests/api_resources/async_/chat/test_completions.py
+++ b/tests/api_resources/async_/chat/test_completions.py
@@ -21,7 +21,7 @@
class TestCompletions:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create(self, client: Perplexity) -> None:
completion = client.async_.chat.completions.create(
@@ -37,7 +37,7 @@ def test_method_create(self, client: Perplexity) -> None:
)
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params(self, client: Perplexity) -> None:
completion = client.async_.chat.completions.create(
@@ -183,7 +183,7 @@ def test_method_create_with_all_params(self, client: Perplexity) -> None:
)
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create(self, client: Perplexity) -> None:
response = client.async_.chat.completions.with_raw_response.create(
@@ -203,7 +203,7 @@ def test_raw_response_create(self, client: Perplexity) -> None:
completion = response.parse()
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create(self, client: Perplexity) -> None:
with client.async_.chat.completions.with_streaming_response.create(
@@ -225,13 +225,13 @@ def test_streaming_response_create(self, client: Perplexity) -> None:
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_list(self, client: Perplexity) -> None:
completion = client.async_.chat.completions.list()
assert_matches_type(CompletionListResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_list(self, client: Perplexity) -> None:
response = client.async_.chat.completions.with_raw_response.list()
@@ -241,7 +241,7 @@ def test_raw_response_list(self, client: Perplexity) -> None:
completion = response.parse()
assert_matches_type(CompletionListResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_list(self, client: Perplexity) -> None:
with client.async_.chat.completions.with_streaming_response.list() as response:
@@ -253,7 +253,7 @@ def test_streaming_response_list(self, client: Perplexity) -> None:
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_get(self, client: Perplexity) -> None:
completion = client.async_.chat.completions.get(
@@ -261,7 +261,7 @@ def test_method_get(self, client: Perplexity) -> None:
)
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_get_with_all_params(self, client: Perplexity) -> None:
completion = client.async_.chat.completions.get(
@@ -276,7 +276,7 @@ def test_method_get_with_all_params(self, client: Perplexity) -> None:
)
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_get(self, client: Perplexity) -> None:
response = client.async_.chat.completions.with_raw_response.get(
@@ -288,7 +288,7 @@ def test_raw_response_get(self, client: Perplexity) -> None:
completion = response.parse()
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_get(self, client: Perplexity) -> None:
with client.async_.chat.completions.with_streaming_response.get(
@@ -302,7 +302,7 @@ def test_streaming_response_get(self, client: Perplexity) -> None:
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_path_params_get(self, client: Perplexity) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `api_request` but received ''"):
@@ -316,7 +316,7 @@ class TestAsyncCompletions:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.async_.chat.completions.create(
@@ -332,7 +332,7 @@ async def test_method_create(self, async_client: AsyncPerplexity) -> None:
)
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.async_.chat.completions.create(
@@ -478,7 +478,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncPerplexity
)
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
response = await async_client.async_.chat.completions.with_raw_response.create(
@@ -498,7 +498,7 @@ async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
completion = await response.parse()
assert_matches_type(CompletionCreateResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create(self, async_client: AsyncPerplexity) -> None:
async with async_client.async_.chat.completions.with_streaming_response.create(
@@ -520,13 +520,13 @@ async def test_streaming_response_create(self, async_client: AsyncPerplexity) ->
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_list(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.async_.chat.completions.list()
assert_matches_type(CompletionListResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_list(self, async_client: AsyncPerplexity) -> None:
response = await async_client.async_.chat.completions.with_raw_response.list()
@@ -536,7 +536,7 @@ async def test_raw_response_list(self, async_client: AsyncPerplexity) -> None:
completion = await response.parse()
assert_matches_type(CompletionListResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_list(self, async_client: AsyncPerplexity) -> None:
async with async_client.async_.chat.completions.with_streaming_response.list() as response:
@@ -548,7 +548,7 @@ async def test_streaming_response_list(self, async_client: AsyncPerplexity) -> N
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_get(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.async_.chat.completions.get(
@@ -556,7 +556,7 @@ async def test_method_get(self, async_client: AsyncPerplexity) -> None:
)
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_get_with_all_params(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.async_.chat.completions.get(
@@ -571,7 +571,7 @@ async def test_method_get_with_all_params(self, async_client: AsyncPerplexity) -
)
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_get(self, async_client: AsyncPerplexity) -> None:
response = await async_client.async_.chat.completions.with_raw_response.get(
@@ -583,7 +583,7 @@ async def test_raw_response_get(self, async_client: AsyncPerplexity) -> None:
completion = await response.parse()
assert_matches_type(CompletionGetResponse, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_get(self, async_client: AsyncPerplexity) -> None:
async with async_client.async_.chat.completions.with_streaming_response.get(
@@ -597,7 +597,7 @@ async def test_streaming_response_get(self, async_client: AsyncPerplexity) -> No
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_path_params_get(self, async_client: AsyncPerplexity) -> None:
with pytest.raises(ValueError, match=r"Expected a non-empty value for `api_request` but received ''"):
diff --git a/tests/api_resources/browser/__init__.py b/tests/api_resources/browser/__init__.py
new file mode 100644
index 0000000..fd8019a
--- /dev/null
+++ b/tests/api_resources/browser/__init__.py
@@ -0,0 +1 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
diff --git a/tests/api_resources/browser/test_sessions.py b/tests/api_resources/browser/test_sessions.py
new file mode 100644
index 0000000..e45506d
--- /dev/null
+++ b/tests/api_resources/browser/test_sessions.py
@@ -0,0 +1,164 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+import os
+from typing import Any, cast
+
+import pytest
+
+from perplexity import Perplexity, AsyncPerplexity
+from tests.utils import assert_matches_type
+from perplexity.types.shared import BrowserSessionResponse
+
+base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
+
+
+class TestSessions:
+ parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_method_create(self, client: Perplexity) -> None:
+ session = client.browser.sessions.create()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_raw_response_create(self, client: Perplexity) -> None:
+ response = client.browser.sessions.with_raw_response.create()
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ session = response.parse()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_streaming_response_create(self, client: Perplexity) -> None:
+ with client.browser.sessions.with_streaming_response.create() as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ session = response.parse()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_method_delete(self, client: Perplexity) -> None:
+ session = client.browser.sessions.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ )
+ assert session is None
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_raw_response_delete(self, client: Perplexity) -> None:
+ response = client.browser.sessions.with_raw_response.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ session = response.parse()
+ assert session is None
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_streaming_response_delete(self, client: Perplexity) -> None:
+ with client.browser.sessions.with_streaming_response.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ session = response.parse()
+ assert session is None
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ def test_path_params_delete(self, client: Perplexity) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `session_id` but received ''"):
+ client.browser.sessions.with_raw_response.delete(
+ "",
+ )
+
+
+class TestAsyncSessions:
+ parametrize = pytest.mark.parametrize(
+ "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
+ )
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_method_create(self, async_client: AsyncPerplexity) -> None:
+ session = await async_client.browser.sessions.create()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
+ response = await async_client.browser.sessions.with_raw_response.create()
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ session = await response.parse()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_streaming_response_create(self, async_client: AsyncPerplexity) -> None:
+ async with async_client.browser.sessions.with_streaming_response.create() as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ session = await response.parse()
+ assert_matches_type(BrowserSessionResponse, session, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_method_delete(self, async_client: AsyncPerplexity) -> None:
+ session = await async_client.browser.sessions.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ )
+ assert session is None
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_raw_response_delete(self, async_client: AsyncPerplexity) -> None:
+ response = await async_client.browser.sessions.with_raw_response.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ session = await response.parse()
+ assert session is None
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_streaming_response_delete(self, async_client: AsyncPerplexity) -> None:
+ async with async_client.browser.sessions.with_streaming_response.delete(
+ "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ session = await response.parse()
+ assert session is None
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip(reason="Mock server tests are disabled")
+ @parametrize
+ async def test_path_params_delete(self, async_client: AsyncPerplexity) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `session_id` but received ''"):
+ await async_client.browser.sessions.with_raw_response.delete(
+ "",
+ )
diff --git a/tests/api_resources/chat/test_completions.py b/tests/api_resources/chat/test_completions.py
index ec771a4..d46424b 100644
--- a/tests/api_resources/chat/test_completions.py
+++ b/tests/api_resources/chat/test_completions.py
@@ -17,7 +17,7 @@
class TestCompletions:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_overload_1(self, client: Perplexity) -> None:
completion = client.chat.completions.create(
@@ -31,7 +31,7 @@ def test_method_create_overload_1(self, client: Perplexity) -> None:
)
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params_overload_1(self, client: Perplexity) -> None:
completion = client.chat.completions.create(
@@ -174,7 +174,7 @@ def test_method_create_with_all_params_overload_1(self, client: Perplexity) -> N
)
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create_overload_1(self, client: Perplexity) -> None:
response = client.chat.completions.with_raw_response.create(
@@ -192,7 +192,7 @@ def test_raw_response_create_overload_1(self, client: Perplexity) -> None:
completion = response.parse()
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create_overload_1(self, client: Perplexity) -> None:
with client.chat.completions.with_streaming_response.create(
@@ -212,7 +212,7 @@ def test_streaming_response_create_overload_1(self, client: Perplexity) -> None:
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_overload_2(self, client: Perplexity) -> None:
completion_stream = client.chat.completions.create(
@@ -227,7 +227,7 @@ def test_method_create_overload_2(self, client: Perplexity) -> None:
)
completion_stream.response.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params_overload_2(self, client: Perplexity) -> None:
completion_stream = client.chat.completions.create(
@@ -370,7 +370,7 @@ def test_method_create_with_all_params_overload_2(self, client: Perplexity) -> N
)
completion_stream.response.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create_overload_2(self, client: Perplexity) -> None:
response = client.chat.completions.with_raw_response.create(
@@ -388,7 +388,7 @@ def test_raw_response_create_overload_2(self, client: Perplexity) -> None:
stream = response.parse()
stream.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create_overload_2(self, client: Perplexity) -> None:
with client.chat.completions.with_streaming_response.create(
@@ -415,7 +415,7 @@ class TestAsyncCompletions:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_overload_1(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.chat.completions.create(
@@ -429,7 +429,7 @@ async def test_method_create_overload_1(self, async_client: AsyncPerplexity) ->
)
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params_overload_1(self, async_client: AsyncPerplexity) -> None:
completion = await async_client.chat.completions.create(
@@ -572,7 +572,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn
)
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create_overload_1(self, async_client: AsyncPerplexity) -> None:
response = await async_client.chat.completions.with_raw_response.create(
@@ -590,7 +590,7 @@ async def test_raw_response_create_overload_1(self, async_client: AsyncPerplexit
completion = await response.parse()
assert_matches_type(StreamChunk, completion, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create_overload_1(self, async_client: AsyncPerplexity) -> None:
async with async_client.chat.completions.with_streaming_response.create(
@@ -610,7 +610,7 @@ async def test_streaming_response_create_overload_1(self, async_client: AsyncPer
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_overload_2(self, async_client: AsyncPerplexity) -> None:
completion_stream = await async_client.chat.completions.create(
@@ -625,7 +625,7 @@ async def test_method_create_overload_2(self, async_client: AsyncPerplexity) ->
)
await completion_stream.response.aclose()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params_overload_2(self, async_client: AsyncPerplexity) -> None:
completion_stream = await async_client.chat.completions.create(
@@ -768,7 +768,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn
)
await completion_stream.response.aclose()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create_overload_2(self, async_client: AsyncPerplexity) -> None:
response = await async_client.chat.completions.with_raw_response.create(
@@ -786,7 +786,7 @@ async def test_raw_response_create_overload_2(self, async_client: AsyncPerplexit
stream = await response.parse()
await stream.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create_overload_2(self, async_client: AsyncPerplexity) -> None:
async with async_client.chat.completions.with_streaming_response.create(
diff --git a/tests/api_resources/test_contextualized_embeddings.py b/tests/api_resources/test_contextualized_embeddings.py
index b81ab77..1325ff8 100644
--- a/tests/api_resources/test_contextualized_embeddings.py
+++ b/tests/api_resources/test_contextualized_embeddings.py
@@ -17,7 +17,7 @@
class TestContextualizedEmbeddings:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create(self, client: Perplexity) -> None:
contextualized_embedding = client.contextualized_embeddings.create(
@@ -26,7 +26,7 @@ def test_method_create(self, client: Perplexity) -> None:
)
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params(self, client: Perplexity) -> None:
contextualized_embedding = client.contextualized_embeddings.create(
@@ -37,7 +37,7 @@ def test_method_create_with_all_params(self, client: Perplexity) -> None:
)
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create(self, client: Perplexity) -> None:
response = client.contextualized_embeddings.with_raw_response.create(
@@ -50,7 +50,7 @@ def test_raw_response_create(self, client: Perplexity) -> None:
contextualized_embedding = response.parse()
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create(self, client: Perplexity) -> None:
with client.contextualized_embeddings.with_streaming_response.create(
@@ -71,7 +71,7 @@ class TestAsyncContextualizedEmbeddings:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create(self, async_client: AsyncPerplexity) -> None:
contextualized_embedding = await async_client.contextualized_embeddings.create(
@@ -80,7 +80,7 @@ async def test_method_create(self, async_client: AsyncPerplexity) -> None:
)
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncPerplexity) -> None:
contextualized_embedding = await async_client.contextualized_embeddings.create(
@@ -91,7 +91,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncPerplexity
)
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
response = await async_client.contextualized_embeddings.with_raw_response.create(
@@ -104,7 +104,7 @@ async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
contextualized_embedding = await response.parse()
assert_matches_type(ContextualizedEmbeddingCreateResponse, contextualized_embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create(self, async_client: AsyncPerplexity) -> None:
async with async_client.contextualized_embeddings.with_streaming_response.create(
diff --git a/tests/api_resources/test_embeddings.py b/tests/api_resources/test_embeddings.py
index 94e9cdd..28229d9 100644
--- a/tests/api_resources/test_embeddings.py
+++ b/tests/api_resources/test_embeddings.py
@@ -17,7 +17,7 @@
class TestEmbeddings:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create(self, client: Perplexity) -> None:
embedding = client.embeddings.create(
@@ -26,7 +26,7 @@ def test_method_create(self, client: Perplexity) -> None:
)
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params(self, client: Perplexity) -> None:
embedding = client.embeddings.create(
@@ -37,7 +37,7 @@ def test_method_create_with_all_params(self, client: Perplexity) -> None:
)
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create(self, client: Perplexity) -> None:
response = client.embeddings.with_raw_response.create(
@@ -50,7 +50,7 @@ def test_raw_response_create(self, client: Perplexity) -> None:
embedding = response.parse()
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create(self, client: Perplexity) -> None:
with client.embeddings.with_streaming_response.create(
@@ -71,7 +71,7 @@ class TestAsyncEmbeddings:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create(self, async_client: AsyncPerplexity) -> None:
embedding = await async_client.embeddings.create(
@@ -80,7 +80,7 @@ async def test_method_create(self, async_client: AsyncPerplexity) -> None:
)
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncPerplexity) -> None:
embedding = await async_client.embeddings.create(
@@ -91,7 +91,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncPerplexity
)
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
response = await async_client.embeddings.with_raw_response.create(
@@ -104,7 +104,7 @@ async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
embedding = await response.parse()
assert_matches_type(EmbeddingCreateResponse, embedding, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create(self, async_client: AsyncPerplexity) -> None:
async with async_client.embeddings.with_streaming_response.create(
diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py
index 2933f6e..a47c20b 100644
--- a/tests/api_resources/test_responses.py
+++ b/tests/api_resources/test_responses.py
@@ -17,7 +17,7 @@
class TestResponses:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_overload_1(self, client: Perplexity) -> None:
response = client.responses.create(
@@ -25,7 +25,7 @@ def test_method_create_overload_1(self, client: Perplexity) -> None:
)
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params_overload_1(self, client: Perplexity) -> None:
response = client.responses.create(
@@ -73,7 +73,7 @@ def test_method_create_with_all_params_overload_1(self, client: Perplexity) -> N
)
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create_overload_1(self, client: Perplexity) -> None:
http_response = client.responses.with_raw_response.create(
@@ -85,7 +85,7 @@ def test_raw_response_create_overload_1(self, client: Perplexity) -> None:
response = http_response.parse()
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create_overload_1(self, client: Perplexity) -> None:
with client.responses.with_streaming_response.create(
@@ -99,7 +99,7 @@ def test_streaming_response_create_overload_1(self, client: Perplexity) -> None:
assert cast(Any, http_response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_overload_2(self, client: Perplexity) -> None:
response_stream = client.responses.create(
@@ -108,7 +108,7 @@ def test_method_create_overload_2(self, client: Perplexity) -> None:
)
response_stream.response.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params_overload_2(self, client: Perplexity) -> None:
response_stream = client.responses.create(
@@ -156,7 +156,7 @@ def test_method_create_with_all_params_overload_2(self, client: Perplexity) -> N
)
response_stream.response.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create_overload_2(self, client: Perplexity) -> None:
response = client.responses.with_raw_response.create(
@@ -168,7 +168,7 @@ def test_raw_response_create_overload_2(self, client: Perplexity) -> None:
stream = response.parse()
stream.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create_overload_2(self, client: Perplexity) -> None:
with client.responses.with_streaming_response.create(
@@ -189,7 +189,7 @@ class TestAsyncResponses:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_overload_1(self, async_client: AsyncPerplexity) -> None:
response = await async_client.responses.create(
@@ -197,7 +197,7 @@ async def test_method_create_overload_1(self, async_client: AsyncPerplexity) ->
)
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params_overload_1(self, async_client: AsyncPerplexity) -> None:
response = await async_client.responses.create(
@@ -245,7 +245,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn
)
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create_overload_1(self, async_client: AsyncPerplexity) -> None:
http_response = await async_client.responses.with_raw_response.create(
@@ -257,7 +257,7 @@ async def test_raw_response_create_overload_1(self, async_client: AsyncPerplexit
response = await http_response.parse()
assert_matches_type(ResponseCreateResponse, response, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create_overload_1(self, async_client: AsyncPerplexity) -> None:
async with async_client.responses.with_streaming_response.create(
@@ -271,7 +271,7 @@ async def test_streaming_response_create_overload_1(self, async_client: AsyncPer
assert cast(Any, http_response.is_closed) is True
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_overload_2(self, async_client: AsyncPerplexity) -> None:
response_stream = await async_client.responses.create(
@@ -280,7 +280,7 @@ async def test_method_create_overload_2(self, async_client: AsyncPerplexity) ->
)
await response_stream.response.aclose()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params_overload_2(self, async_client: AsyncPerplexity) -> None:
response_stream = await async_client.responses.create(
@@ -328,7 +328,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn
)
await response_stream.response.aclose()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create_overload_2(self, async_client: AsyncPerplexity) -> None:
response = await async_client.responses.with_raw_response.create(
@@ -340,7 +340,7 @@ async def test_raw_response_create_overload_2(self, async_client: AsyncPerplexit
stream = await response.parse()
await stream.close()
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create_overload_2(self, async_client: AsyncPerplexity) -> None:
async with async_client.responses.with_streaming_response.create(
diff --git a/tests/api_resources/test_search.py b/tests/api_resources/test_search.py
index 2f62378..7bcd539 100644
--- a/tests/api_resources/test_search.py
+++ b/tests/api_resources/test_search.py
@@ -17,7 +17,7 @@
class TestSearch:
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create(self, client: Perplexity) -> None:
search = client.search.create(
@@ -25,7 +25,7 @@ def test_method_create(self, client: Perplexity) -> None:
)
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_create_with_all_params(self, client: Perplexity) -> None:
search = client.search.create(
@@ -46,7 +46,7 @@ def test_method_create_with_all_params(self, client: Perplexity) -> None:
)
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_raw_response_create(self, client: Perplexity) -> None:
response = client.search.with_raw_response.create(
@@ -58,7 +58,7 @@ def test_raw_response_create(self, client: Perplexity) -> None:
search = response.parse()
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_streaming_response_create(self, client: Perplexity) -> None:
with client.search.with_streaming_response.create(
@@ -78,7 +78,7 @@ class TestAsyncSearch:
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
)
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create(self, async_client: AsyncPerplexity) -> None:
search = await async_client.search.create(
@@ -86,7 +86,7 @@ async def test_method_create(self, async_client: AsyncPerplexity) -> None:
)
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_create_with_all_params(self, async_client: AsyncPerplexity) -> None:
search = await async_client.search.create(
@@ -107,7 +107,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncPerplexity
)
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
response = await async_client.search.with_raw_response.create(
@@ -119,7 +119,7 @@ async def test_raw_response_create(self, async_client: AsyncPerplexity) -> None:
search = await response.parse()
assert_matches_type(SearchCreateResponse, search, path=["response"])
- @pytest.mark.skip(reason="Prism tests are disabled")
+ @pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_streaming_response_create(self, async_client: AsyncPerplexity) -> None:
async with async_client.search.with_streaming_response.create(