mirror of
https://github.com/actix/actix-web.git
synced 2024-11-18 07:35:36 +00:00
add TestRequest::run(), allows to run async functions
This commit is contained in:
parent
3fb7343e73
commit
b4768a8f81
2 changed files with 13 additions and 1 deletions
|
@ -24,6 +24,7 @@ actix-codec = "0.1.2"
|
||||||
actix-service = "0.3.6"
|
actix-service = "0.3.6"
|
||||||
actix-utils = "0.3.4"
|
actix-utils = "0.3.4"
|
||||||
actix-router = "0.1.2"
|
actix-router = "0.1.2"
|
||||||
|
actix-rt = "0.2.2"
|
||||||
actix-http = { path = "../actix-http" }
|
actix-http = { path = "../actix-http" }
|
||||||
|
|
||||||
bytes = "0.4"
|
bytes = "0.4"
|
||||||
|
@ -31,7 +32,6 @@ futures = "0.1.25"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-rt = "0.2.2"
|
|
||||||
actix-server = { version = "0.4.1", features=["ssl"] }
|
actix-server = { version = "0.4.1", features=["ssl"] }
|
||||||
actix-connect = { version = "0.1.0", features=["ssl"] }
|
actix-connect = { version = "0.1.0", features=["ssl"] }
|
||||||
actix-http-test = { version = "0.1.0-alpha.3", features=["ssl"] }
|
actix-http-test = { version = "0.1.0-alpha.3", features=["ssl"] }
|
||||||
|
|
|
@ -5,6 +5,8 @@ use actix_http::http::header::{Header, HeaderName, IntoHeaderValue};
|
||||||
use actix_http::http::{HttpTryFrom, Method, Uri, Version};
|
use actix_http::http::{HttpTryFrom, Method, Uri, Version};
|
||||||
use actix_http::test::{TestBuffer, TestRequest as HttpTestRequest};
|
use actix_http::test::{TestBuffer, TestRequest as HttpTestRequest};
|
||||||
use actix_router::{Path, Url};
|
use actix_router::{Path, Url};
|
||||||
|
use actix_rt::Runtime;
|
||||||
|
use futures::IntoFuture;
|
||||||
|
|
||||||
use crate::{FramedRequest, State};
|
use crate::{FramedRequest, State};
|
||||||
|
|
||||||
|
@ -114,6 +116,16 @@ impl<S> TestRequest<S> {
|
||||||
let framed = Framed::new(TestBuffer::empty(), Codec::default());
|
let framed = Framed::new(TestBuffer::empty(), Codec::default());
|
||||||
FramedRequest::new(req, framed, self.path, self.state)
|
FramedRequest::new(req, framed, self.path, self.state)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// This method generates `FramedRequest` instance and executes async handler
|
||||||
|
pub fn run<F, R, I, E>(self, f: F) -> Result<I, E>
|
||||||
|
where
|
||||||
|
F: FnOnce(FramedRequest<TestBuffer, S>) -> R,
|
||||||
|
R: IntoFuture<Item = I, Error = E>,
|
||||||
|
{
|
||||||
|
let mut rt = Runtime::new().unwrap();
|
||||||
|
rt.block_on(f(self.finish()).into_future())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|
Loading…
Reference in a new issue