mockserver-client 9.2.0__tar.gz → 9.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/PKG-INFO +2 -2
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/README.md +1 -1
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/launcher.py +1 -1
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/models.py +14 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/PKG-INFO +2 -2
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/pyproject.toml +1 -1
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_models.py +16 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/__init__.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/a2a.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/async_client.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/client.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/exceptions.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/fluent.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/llm.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/mcp.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/py.typed +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/pytest_plugin.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver/websocket_client.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/SOURCES.txt +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/dependency_links.txt +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/entry_points.txt +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/requires.txt +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/top_level.txt +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/setup.cfg +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_a2a.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_any_of_request_definition.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_async_client.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_auth_tls.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_body_date_time_matcher.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_breakpoint.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_client.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_conditional_request_and_load_check.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_control_plane.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_date_time_matcher.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_exceptions.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_expectation_filter.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_explain.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_fluent.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_from_dict_fidelity.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_init.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_integration.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_key_multi_value_forms.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_launcher.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_llm.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_mcp.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_override_forwarded_request.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_pytest_plugin.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_recorded_expectations_options.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_roundtrip_fidelity.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_sync_chain_parity.py +0 -0
- {mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_websocket_client.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mockserver-client
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.3.0
|
|
4
4
|
Summary: Official Python client for MockServer — create expectations, verify requests, and register dynamic callbacks via WebSocket
|
|
5
5
|
Author-email: James Bloom <jamesdbloom@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -679,7 +679,7 @@ launcher_path = ensure_binary() # returns Path to the launcher executable
|
|
|
679
679
|
```python
|
|
680
680
|
from mockserver.launcher import start
|
|
681
681
|
|
|
682
|
-
server = start(port=1080, version="9.
|
|
682
|
+
server = start(port=1080, version="9.3.0")
|
|
683
683
|
# ...
|
|
684
684
|
server.stop()
|
|
685
685
|
```
|
|
@@ -649,7 +649,7 @@ launcher_path = ensure_binary() # returns Path to the launcher executable
|
|
|
649
649
|
```python
|
|
650
650
|
from mockserver.launcher import start
|
|
651
651
|
|
|
652
|
-
server = start(port=1080, version="9.
|
|
652
|
+
server = start(port=1080, version="9.3.0")
|
|
653
653
|
# ...
|
|
654
654
|
server.stop()
|
|
655
655
|
```
|
|
@@ -45,7 +45,7 @@ logger = logging.getLogger(__name__)
|
|
|
45
45
|
|
|
46
46
|
# The version shipped with this client. ``ensure_binary()`` defaults to this
|
|
47
47
|
# when no explicit version is passed.
|
|
48
|
-
_CLIENT_VERSION = "9.
|
|
48
|
+
_CLIENT_VERSION = "9.3.0"
|
|
49
49
|
|
|
50
50
|
_REPO = "mock-server/mockserver-monorepo"
|
|
51
51
|
|
|
@@ -2126,6 +2126,7 @@ class SseEvent:
|
|
|
2126
2126
|
id: str | None = None
|
|
2127
2127
|
retry: int | None = None
|
|
2128
2128
|
delay: Delay | None = None
|
|
2129
|
+
comment: str | None = None
|
|
2129
2130
|
|
|
2130
2131
|
def to_dict(self) -> dict:
|
|
2131
2132
|
result: dict = {}
|
|
@@ -2137,6 +2138,8 @@ class SseEvent:
|
|
|
2137
2138
|
result["id"] = self.id
|
|
2138
2139
|
if self.retry is not None:
|
|
2139
2140
|
result["retry"] = self.retry
|
|
2141
|
+
if self.comment is not None:
|
|
2142
|
+
result["comment"] = self.comment
|
|
2140
2143
|
if self.delay is not None:
|
|
2141
2144
|
result["delay"] = self.delay.to_dict()
|
|
2142
2145
|
return result
|
|
@@ -2151,6 +2154,7 @@ class SseEvent:
|
|
|
2151
2154
|
id=data.get("id"),
|
|
2152
2155
|
retry=data.get("retry"),
|
|
2153
2156
|
delay=Delay.from_dict(data.get("delay")),
|
|
2157
|
+
comment=data.get("comment"),
|
|
2154
2158
|
)
|
|
2155
2159
|
|
|
2156
2160
|
|
|
@@ -2164,6 +2168,10 @@ class HttpSseResponse:
|
|
|
2164
2168
|
primary: bool | None = None
|
|
2165
2169
|
# Renders each event's fields with this engine (VELOCITY / JAVASCRIPT / MUSTACHE).
|
|
2166
2170
|
template_type: str | None = None
|
|
2171
|
+
# The wait after the last event before the stream ends.
|
|
2172
|
+
close_delay: Delay | None = None
|
|
2173
|
+
# When True the stream stays open after its last event until the client leaves; close_delay is then ignored.
|
|
2174
|
+
keep_stream_open: bool | None = None
|
|
2167
2175
|
|
|
2168
2176
|
def to_dict(self) -> dict:
|
|
2169
2177
|
result: dict = {}
|
|
@@ -2175,6 +2183,10 @@ class HttpSseResponse:
|
|
|
2175
2183
|
result["events"] = [e.to_dict() if hasattr(e, 'to_dict') else e for e in self.events]
|
|
2176
2184
|
if self.close_connection is not None:
|
|
2177
2185
|
result["closeConnection"] = self.close_connection
|
|
2186
|
+
if self.close_delay is not None:
|
|
2187
|
+
result["closeDelay"] = self.close_delay.to_dict()
|
|
2188
|
+
if self.keep_stream_open is not None:
|
|
2189
|
+
result["keepStreamOpen"] = self.keep_stream_open
|
|
2178
2190
|
if self.template_type is not None:
|
|
2179
2191
|
result["templateType"] = self.template_type
|
|
2180
2192
|
if self.delay is not None:
|
|
@@ -2199,6 +2211,8 @@ class HttpSseResponse:
|
|
|
2199
2211
|
delay=Delay.from_dict(data.get("delay")),
|
|
2200
2212
|
primary=data.get("primary"),
|
|
2201
2213
|
template_type=data.get("templateType"),
|
|
2214
|
+
close_delay=Delay.from_dict(data.get("closeDelay")),
|
|
2215
|
+
keep_stream_open=data.get("keepStreamOpen"),
|
|
2202
2216
|
)
|
|
2203
2217
|
|
|
2204
2218
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mockserver-client
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.3.0
|
|
4
4
|
Summary: Official Python client for MockServer — create expectations, verify requests, and register dynamic callbacks via WebSocket
|
|
5
5
|
Author-email: James Bloom <jamesdbloom@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -679,7 +679,7 @@ launcher_path = ensure_binary() # returns Path to the launcher executable
|
|
|
679
679
|
```python
|
|
680
680
|
from mockserver.launcher import start
|
|
681
681
|
|
|
682
|
-
server = start(port=1080, version="9.
|
|
682
|
+
server = start(port=1080, version="9.3.0")
|
|
683
683
|
# ...
|
|
684
684
|
server.stop()
|
|
685
685
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mockserver-client"
|
|
3
|
-
version = "9.
|
|
3
|
+
version = "9.3.0"
|
|
4
4
|
description = "Official Python client for MockServer — create expectations, verify requests, and register dynamic callbacks via WebSocket"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "James Bloom", email = "jamesdbloom@gmail.com"},
|
|
@@ -4467,6 +4467,22 @@ class TestActionFieldsTheServerAccepts:
|
|
|
4467
4467
|
assert HttpSseResponse.from_dict(data).to_dict() == data
|
|
4468
4468
|
assert "templateType" not in HttpSseResponse(status_code=200).to_dict()
|
|
4469
4469
|
|
|
4470
|
+
def test_sse_end_of_stream_round_trip(self):
|
|
4471
|
+
data = {"events": [{"data": "last"}], "closeDelay": {"timeUnit": "SECONDS", "value": 15}, "keepStreamOpen": True}
|
|
4472
|
+
resp = HttpSseResponse.from_dict(data)
|
|
4473
|
+
assert resp.close_delay.value == 15
|
|
4474
|
+
assert resp.keep_stream_open is True
|
|
4475
|
+
assert resp.to_dict() == data
|
|
4476
|
+
assert "closeDelay" not in HttpSseResponse(status_code=200).to_dict()
|
|
4477
|
+
assert "keepStreamOpen" not in HttpSseResponse(status_code=200).to_dict()
|
|
4478
|
+
|
|
4479
|
+
def test_sse_event_comment_round_trip(self):
|
|
4480
|
+
data = {"statusCode": 200, "events": [{"comment": "heartbeat"}, {"data": "d", "comment": "a\nb"}]}
|
|
4481
|
+
resp = HttpSseResponse.from_dict(data)
|
|
4482
|
+
assert resp.events[0].comment == "heartbeat"
|
|
4483
|
+
assert resp.to_dict() == data
|
|
4484
|
+
assert "comment" not in HttpSseResponse.from_dict({"events": [{"data": "d"}]}).to_dict()["events"][0]
|
|
4485
|
+
|
|
4470
4486
|
def test_expectation_carries_the_fields_through(self):
|
|
4471
4487
|
data = {
|
|
4472
4488
|
"httpRequest": {"path": "/x"},
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/mockserver_client.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_conditional_request_and_load_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_override_forwarded_request.py
RENAMED
|
File without changes
|
|
File without changes
|
{mockserver_client-9.2.0 → mockserver_client-9.3.0}/tests/test_recorded_expectations_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|