LogicPublisher
faststream.nats.publisher.usecase.LogicPublisher #
LogicPublisher(
config: NatsPublisherConfig,
specification: PublisherSpecification[Any, Any],
)
Bases: PublisherUsecase
A class to represent a NATS publisher.
Initialize NATS publisher object.
Source code in faststream/nats/publisher/usecase.py
subject property #
The subject this Publisher was declared with, and its Broker address.
mock property #
The mock recording the endpoint's calls, available under a test broker.
publish async #
publish(
message: SendableMessage,
subject: str = "",
headers: dict[str, str] | None = None,
reply_to: str = "",
correlation_id: str | None = None,
stream: None = None,
timeout: float | None = None,
) -> None
publish(
message: SendableMessage,
subject: str = "",
headers: dict[str, str] | None = None,
reply_to: str = "",
correlation_id: str | None = None,
stream: str | None = None,
timeout: float | None = None,
) -> PubAck
publish(
message: SendableMessage,
subject: str = "",
headers: dict[str, str] | None = None,
reply_to: str = "",
correlation_id: str | None = None,
stream: str | None = None,
timeout: float | None = None,
) -> Optional[PubAck]
Publish message directly.
| PARAMETER | DESCRIPTION |
|---|---|
message | Message body to send. Can be any encodable object (native python types or TYPE: |
subject | NATS subject to send message. TYPE: |
headers | Message headers to store metainformation. content-type and correlation_id will be set automatically by framework anyway. TYPE: |
reply_to | NATS subject name to send response. TYPE: |
correlation_id | Manual message correlation_id setter. correlation_id is a useful option to trace messages. TYPE: |
stream | This option validates that the target subject is in presented stream. Can be omitted without any effect if you doesn't want PubAck frame. TYPE: |
timeout | Timeout to send message to NATS. TYPE: |
| RETURNS | DESCRIPTION |
|---|---|
Optional[PubAck] |
|
Optional[PubAck] |
|
Source code in faststream/nats/publisher/usecase.py
request async #
request(
message: SendableMessage,
subject: str = "",
headers: dict[str, str] | None = None,
correlation_id: str | None = None,
stream: str | None = None,
timeout: float = 0.5,
) -> NatsMessage
Make a synchronous request to outer subscriber.
If out subscriber listens subject by stream, you should setup the same stream explicitly. Another way you will reseave confirmation frame as a response.
| PARAMETER | DESCRIPTION |
|---|---|
message | Message body to send. Can be any encodable object (native python types or TYPE: |
subject | NATS subject to send message. TYPE: |
headers | Message headers to store metainformation. content-type and correlation_id will be set automatically by framework anyway. TYPE: |
correlation_id | Manual message correlation_id setter. correlation_id is a useful option to trace messages. TYPE: |
stream | This allows to make RPC calls over JetStream subjects. TYPE: |
timeout | Timeout to send message to NATS. TYPE: |
| RETURNS | DESCRIPTION |
|---|---|
NatsMessage |
|
Source code in faststream/nats/publisher/usecase.py
assert_called_once_with async #
assert_called_once_with(
body: Any = EMPTY,
/,
*,
headers: Any = EMPTY,
correlation_id: Any = EMPTY,
reply_to: Any = EMPTY,
content_type: Any = EMPTY,
path: Any = EMPTY,
context: Mapping[str, Any] = EMPTY,
) -> None
Assert the endpoint was called once, with the message described here.
| PARAMETER | DESCRIPTION |
|---|---|
body | The body as a dict, a model or a matcher; it goes through the codec. TYPE: |
headers | Headers the message must carry; the rest may carry more. TYPE: |
correlation_id | The exact correlation id. TYPE: |
reply_to | The exact reply-to destination. TYPE: |
content_type | The exact content type. TYPE: |
path | The exact path parameters the subject template matched. TYPE: |
context | Context paths, as given to TYPE: |
Source code in faststream/_internal/testing/calls.py
assert_called_with async #
assert_called_with(
body: Any = EMPTY,
/,
*,
headers: Any = EMPTY,
correlation_id: Any = EMPTY,
reply_to: Any = EMPTY,
content_type: Any = EMPTY,
path: Any = EMPTY,
context: Mapping[str, Any] = EMPTY,
) -> None
Assert the last message the endpoint saw is the one described here.
| PARAMETER | DESCRIPTION |
|---|---|
body | The body as a dict, a model or a matcher; it goes through the codec. TYPE: |
headers | Headers the message must carry; the rest may carry more. TYPE: |
correlation_id | The exact correlation id. TYPE: |
reply_to | The exact reply-to destination. TYPE: |
content_type | The exact content type. TYPE: |
path | The exact path parameters the subject template matched. TYPE: |
context | Context paths, as given to TYPE: |
Source code in faststream/_internal/testing/calls.py
assert_any_call async #
assert_any_call(
body: Any = EMPTY,
/,
*,
headers: Any = EMPTY,
correlation_id: Any = EMPTY,
reply_to: Any = EMPTY,
content_type: Any = EMPTY,
path: Any = EMPTY,
context: Mapping[str, Any] = EMPTY,
) -> None
Assert one of the messages the endpoint saw is the one described here.
| PARAMETER | DESCRIPTION |
|---|---|
body | The body as a dict, a model or a matcher; it goes through the codec. TYPE: |
headers | Headers the message must carry; the rest may carry more. TYPE: |
correlation_id | The exact correlation id. TYPE: |
reply_to | The exact reply-to destination. TYPE: |
content_type | The exact content type. TYPE: |
path | The exact path parameters the subject template matched. TYPE: |
context | Context paths, as given to TYPE: |
Source code in faststream/_internal/testing/calls.py
start async #
set_test #
Turn publisher to testing mode, sharing recorder when one is given.
Source code in faststream/_internal/endpoint/publisher/usecase.py
reset_test #
Turn off publisher's testing mode.
Source code in faststream/_internal/endpoint/publisher/usecase.py
schema #
schema() -> dict[str, PublisherSpec]