mirror of
https://github.com/actix/actix-web.git
synced 2024-11-22 01:21:10 +00:00
Allow disabling redirect following in actix-test (#3356)
If you're testing that redirects are being properly generated, then it's useful to not have the client go off on a wild goose chase of its own. Co-authored-by: Rob Ede <robjtede@icloud.com>
This commit is contained in:
parent
8fdf358954
commit
8b4d23a69a
2 changed files with 22 additions and 2 deletions
|
@ -3,8 +3,9 @@
|
|||
## Unreleased
|
||||
|
||||
- Add `TestServerConfig::rustls_0_23()` method for Rustls v0.23 support behind new `rustls-0_23` crate feature.
|
||||
- Minimum supported Rust version (MSRV) is now 1.72.
|
||||
- Add `TestServerConfig::disable_redirects()` method.
|
||||
- Various types from `awc`, such as `ClientRequest` and `ClientResponse`, are now re-exported.
|
||||
- Minimum supported Rust version (MSRV) is now 1.72.
|
||||
|
||||
## 0.1.3
|
||||
|
||||
|
|
|
@ -149,6 +149,8 @@ where
|
|||
StreamType::Rustls023(_) => true,
|
||||
};
|
||||
|
||||
let client_cfg = cfg.clone();
|
||||
|
||||
// run server in separate orphaned thread
|
||||
thread::spawn(move || {
|
||||
rt::System::new().block_on(async move {
|
||||
|
@ -460,7 +462,13 @@ where
|
|||
}
|
||||
};
|
||||
|
||||
Client::builder().connector(connector).finish()
|
||||
let mut client_builder = Client::builder().connector(connector);
|
||||
|
||||
if client_cfg.disable_redirects {
|
||||
client_builder = client_builder.disable_redirects();
|
||||
}
|
||||
|
||||
client_builder.finish()
|
||||
};
|
||||
|
||||
TestServer {
|
||||
|
@ -507,6 +515,7 @@ pub struct TestServerConfig {
|
|||
client_request_timeout: Duration,
|
||||
port: u16,
|
||||
workers: usize,
|
||||
disable_redirects: bool,
|
||||
}
|
||||
|
||||
impl Default for TestServerConfig {
|
||||
|
@ -524,6 +533,7 @@ impl TestServerConfig {
|
|||
client_request_timeout: Duration::from_secs(5),
|
||||
port: 0,
|
||||
workers: 1,
|
||||
disable_redirects: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -611,6 +621,15 @@ impl TestServerConfig {
|
|||
self.workers = workers;
|
||||
self
|
||||
}
|
||||
|
||||
/// Instruct the client to not follow redirects.
|
||||
///
|
||||
/// By default, the client will follow up to 10 consecutive redirects
|
||||
/// before giving up.
|
||||
pub fn disable_redirects(mut self) -> Self {
|
||||
self.disable_redirects = true;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
/// A basic HTTP server controller that simplifies the process of writing integration tests for
|
||||
|
|
Loading…
Reference in a new issue