Skip to content

Commit 8aaae15

Browse files
authored
Merge pull request #5831 from Turbo87/conduit-test-without-conduit
conduit-test: Remove `conduit` dependency
2 parents 1fcd0d0 + e614790 commit 8aaae15

File tree

5 files changed

+19
-53
lines changed

5 files changed

+19
-53
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

conduit-test/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ edition = "2018"
1010

1111
[dependencies]
1212
bytes = "1.3.0"
13-
conduit = { version ="0.10.0", path = "../conduit" }
1413
hyper = "0.14.23"

conduit-test/src/lib.rs

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
use bytes::Bytes;
2-
use hyper::Request;
3-
use std::io::{Cursor, Read};
4-
5-
use conduit::{
6-
header::{HeaderValue, IntoHeaderName},
7-
Extensions, HeaderMap, Method, Uri,
8-
};
2+
use hyper::http::{header::IntoHeaderName, HeaderValue, Method, Request};
3+
use std::io::Cursor;
94

105
pub struct MockRequest {
11-
request: conduit::Request<Cursor<Bytes>>,
6+
request: Request<Cursor<Bytes>>,
127
}
138

149
impl MockRequest {
1510
pub fn new(method: Method, path: &str) -> MockRequest {
16-
let request = conduit::Request::builder()
11+
let request = Request::builder()
1712
.method(&method)
1813
.uri(path)
1914
.body(Cursor::new(Bytes::new()))
@@ -36,34 +31,9 @@ impl MockRequest {
3631
.insert(name, HeaderValue::from_str(value).unwrap());
3732
self
3833
}
39-
}
40-
41-
impl conduit::RequestExt for MockRequest {
42-
fn method(&self) -> &Method {
43-
self.request.method()
44-
}
45-
46-
fn uri(&self) -> &Uri {
47-
self.request.uri()
48-
}
49-
50-
fn content_length(&self) -> Option<u64> {
51-
Some(self.request.body().get_ref().len() as u64)
52-
}
53-
54-
fn headers(&self) -> &HeaderMap {
55-
self.request.headers()
56-
}
5734

58-
fn body(&mut self) -> &mut dyn Read {
59-
self.request.body_mut()
60-
}
61-
62-
fn extensions(&self) -> &Extensions {
63-
self.request.extensions()
64-
}
65-
fn extensions_mut(&mut self) -> &mut Extensions {
66-
self.request.extensions_mut()
35+
pub fn into_inner(self) -> Request<Cursor<Bytes>> {
36+
self.request
6737
}
6838
}
6939

@@ -78,37 +48,32 @@ impl From<MockRequest> for Request<hyper::Body> {
7848
mod tests {
7949
use super::MockRequest;
8050

81-
use conduit::{header, Method, RequestExt};
51+
use hyper::http::{header, Method};
8252

8353
#[test]
8454
fn simple_request_test() {
85-
let mut req = MockRequest::new(Method::GET, "/");
55+
let req = MockRequest::new(Method::GET, "/").into_inner();
8656

8757
assert_eq!(req.method(), Method::GET);
8858
assert_eq!(req.uri(), "/");
89-
assert_eq!(req.content_length(), Some(0));
9059
assert_eq!(req.headers().len(), 0);
91-
let mut s = String::new();
92-
req.body().read_to_string(&mut s).expect("No body");
93-
assert_eq!(s, "".to_string());
60+
assert_eq!(req.body().get_ref(), "");
9461
}
9562

9663
#[test]
9764
fn request_body_test() {
9865
let mut req = MockRequest::new(Method::POST, "/articles");
9966
req.with_body(b"Hello world");
67+
let req = req.into_inner();
10068

10169
assert_eq!(req.method(), Method::POST);
10270
assert_eq!(req.uri(), "/articles");
103-
let mut s = String::new();
104-
req.body().read_to_string(&mut s).expect("No body");
105-
assert_eq!(s, "Hello world".to_string());
106-
assert_eq!(req.content_length(), Some(11));
71+
assert_eq!(req.body().get_ref(), "Hello world");
10772
}
10873

10974
#[test]
11075
fn request_query_test() {
111-
let req = MockRequest::new(Method::POST, "/articles?foo=bar");
76+
let req = MockRequest::new(Method::POST, "/articles?foo=bar").into_inner();
11277
assert_eq!(req.uri().query().expect("No query string"), "foo=bar");
11378
}
11479

@@ -117,6 +82,7 @@ mod tests {
11782
let mut req = MockRequest::new(Method::POST, "/articles");
11883
req.header(header::USER_AGENT, "lulz");
11984
req.header(header::DNT, "1");
85+
let req = req.into_inner();
12086

12187
assert_eq!(req.headers().len(), 2);
12288
assert_eq!(req.headers().get(header::USER_AGENT).unwrap(), "lulz");

src/controllers/helpers/pagination.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,11 @@ pub(crate) fn decode_seek<D: for<'a> Deserialize<'a>>(seek: &str) -> AppResult<D
307307
#[cfg(test)]
308308
mod tests {
309309
use super::*;
310+
use axum::body::Bytes;
310311
use conduit_test::MockRequest;
311-
use http::StatusCode;
312+
use http::{Request, StatusCode};
312313
use serde_json::Value;
314+
use std::io::Cursor;
313315

314316
#[test]
315317
fn no_pagination_param() {
@@ -410,9 +412,9 @@ mod tests {
410412
);
411413
}
412414

413-
fn mock(query: &str) -> MockRequest {
415+
fn mock(query: &str) -> Request<Cursor<Bytes>> {
414416
let path_and_query = format!("/?{query}");
415-
MockRequest::new(http::Method::GET, &path_and_query)
417+
MockRequest::new(http::Method::GET, &path_and_query).into_inner()
416418
}
417419

418420
fn assert_pagination_error(options: PaginationOptionsBuilder, query: &str, message: &str) {

src/router.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ mod tests {
241241

242242
#[test]
243243
fn http_error_responses() {
244-
let mut req = MockRequest::new(::conduit::Method::GET, "/");
244+
let mut req = MockRequest::new(::conduit::Method::GET, "/").into_inner();
245245
req.extensions_mut().insert(CustomMetadata::default());
246246

247247
// Types for handling common error status codes

0 commit comments

Comments
 (0)