Struct django_query::mock::EndpointWithContext
source · [−]pub struct EndpointWithContext<T> where
T: Send + Sync + RowSource,
for<'t> &'t <<T as RowSource>::Rows as RowSet>::Target: IntoIterator<Item = &'t <T as RowSource>::Item>, { /* private fields */ }
wiremock
only.Expand description
A Django-style endpoint for a collection of objects that require a context value.
EndpointWithContext
implements
wiremock::Respond
and so can be mounted directly into a
wiremock::MockServer
. It contains a RowSource
which it
will query for a fresh data on each query.
The primary distinction between this type and Endpoint
is that
it can be used with types that require a context object, and so
relies on the extended traits FilterableWithContext
,
IntoRowWithContext
and SortableWithContext
.
Any supplied RowSource
needs to generate RowSet
values
that double as the context value required by these traits.
Implementations
sourceimpl<'q, T> EndpointWithContext<T> where
T: Send + Sync + RowSource,
for<'t> &'t <<T as RowSource>::Rows as RowSet>::Target: IntoIterator<Item = &'t <T as RowSource>::Item>,
impl<'q, T> EndpointWithContext<T> where
T: Send + Sync + RowSource,
for<'t> &'t <<T as RowSource>::Rows as RowSet>::Target: IntoIterator<Item = &'t <T as RowSource>::Item>,
sourcepub fn new(row_source: T, base_uri: Option<&str>) -> Self
pub fn new(row_source: T, base_uri: Option<&str>) -> Self
Create a new EndpointWithContext
.
row_source
is where the data comes from. base_uri
, if
provided, should be the wiremock server URI.
base_uri
is only required because wiremock mangles the
request URL such that it’s not possible to inspect it to see
how to give out other URLs on the same server; the port
number, which is usually random when mocking, is lost. Since
Django includes full absolute URLs for the next and preceding
pages for a query, mimicking this is impossible without more
information (i.e. including usable URLs for the next page
within the query response is impossible).
sourcepub fn default_limit(&mut self, limit: usize)
pub fn default_limit(&mut self, limit: usize)
Set the default number of results returned
This is the value used when no limit is specified in the query. This value is configurable in Django; the default behaviour of this mock endpoint is to return everything, but that makes testing code that uses the default pagination more difficult.
Trait Implementations
sourceimpl<'q, T, A, R> Respond for EndpointWithContext<T> where
T: Send + Sync + RowSource<Rows = A, Item = R>,
for<'t> &'t <A as RowSet>::Target: IntoIterator<Item = &'t R>,
R: Send + Sync + FilterableWithContext<'q, A> + SortableWithContext<'q, A> + IntoRowWithContext<'q, A> + 'q,
A: Clone + 'q + RowSet,
impl<'q, T, A, R> Respond for EndpointWithContext<T> where
T: Send + Sync + RowSource<Rows = A, Item = R>,
for<'t> &'t <A as RowSet>::Target: IntoIterator<Item = &'t R>,
R: Send + Sync + FilterableWithContext<'q, A> + SortableWithContext<'q, A> + IntoRowWithContext<'q, A> + 'q,
A: Clone + 'q + RowSet,
sourcefn respond(&self, request: &Request) -> ResponseTemplate
fn respond(&self, request: &Request) -> ResponseTemplate
Given a reference to a Request
return a ResponseTemplate
that will be used
by the MockServer
as blueprint for the response returned to the client. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for EndpointWithContext<T> where
T: RefUnwindSafe,
impl<T> Send for EndpointWithContext<T>
impl<T> Sync for EndpointWithContext<T>
impl<T> Unpin for EndpointWithContext<T> where
T: Unpin,
impl<T> UnwindSafe for EndpointWithContext<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more