Skip to content

Commit 77e846c

Browse files
authored
Merge pull request #52 from stackhpc/refactor-request-data-tests
Refactor tests to use utilities to build RequestData
2 parents de1a56f + ee31bb6 commit 77e846c

File tree

8 files changed

+226
-417
lines changed

8 files changed

+226
-417
lines changed

Cargo.lock

Lines changed: 124 additions & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/array.rs

Lines changed: 12 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,7 @@ where
148148
#[cfg(test)]
149149
mod tests {
150150
use super::*;
151-
152-
use url::Url;
151+
use crate::test_utils;
153152

154153
#[test]
155154
fn from_bytes_u32() {
@@ -224,41 +223,15 @@ mod tests {
224223

225224
#[test]
226225
fn get_shape_without_shape() {
227-
let shape = get_shape(
228-
42,
229-
&models::RequestData {
230-
source: Url::parse("http://example.com").unwrap(),
231-
bucket: "bar".to_string(),
232-
object: "baz".to_string(),
233-
dtype: models::DType::Int32,
234-
offset: None,
235-
size: None,
236-
shape: None,
237-
order: None,
238-
selection: None,
239-
compression: None,
240-
},
241-
);
226+
let shape = get_shape(42, &test_utils::get_test_request_data());
242227
assert_eq!([42], shape.raw_dim().as_array_view().as_slice().unwrap());
243228
}
244229

245230
#[test]
246231
fn get_shape_with_shape() {
247-
let shape = get_shape(
248-
42,
249-
&models::RequestData {
250-
source: Url::parse("http://example.com").unwrap(),
251-
bucket: "bar".to_string(),
252-
object: "baz".to_string(),
253-
dtype: models::DType::Int32,
254-
offset: None,
255-
size: None,
256-
shape: Some(vec![1, 2, 3]),
257-
order: None,
258-
selection: None,
259-
compression: None,
260-
},
261-
);
232+
let mut request_data = test_utils::get_test_request_data();
233+
request_data.shape = Some(vec![1, 2, 3]);
234+
let shape = get_shape(42, &request_data);
262235
assert_eq!(
263236
[1, 2, 3],
264237
shape.raw_dim().as_array_view().as_slice().unwrap()
@@ -450,18 +423,8 @@ mod tests {
450423
#[test]
451424
fn build_array_1d_u32() {
452425
let data = [1, 2, 3, 4, 5, 6, 7, 8];
453-
let request_data = models::RequestData {
454-
source: Url::parse("http://example.com").unwrap(),
455-
bucket: "bar".to_string(),
456-
object: "baz".to_string(),
457-
dtype: models::DType::Uint32,
458-
offset: None,
459-
size: None,
460-
shape: None,
461-
order: None,
462-
selection: None,
463-
compression: None,
464-
};
426+
let mut request_data = test_utils::get_test_request_data();
427+
request_data.dtype = models::DType::Uint32;
465428
let bytes = Bytes::copy_from_slice(&data);
466429
let array = build_array::<u32>(&request_data, &bytes).unwrap();
467430
assert_eq!(array![0x04030201_u32, 0x08070605_u32].into_dyn(), array);
@@ -470,18 +433,9 @@ mod tests {
470433
#[test]
471434
fn build_array_2d_i64() {
472435
let data = [1, 2, 3, 4, 0, 0, 0, 0, 5, 6, 7, 8, 0, 0, 0, 0];
473-
let request_data = models::RequestData {
474-
source: Url::parse("http://example.com").unwrap(),
475-
bucket: "bar".to_string(),
476-
object: "baz".to_string(),
477-
dtype: models::DType::Int64,
478-
offset: None,
479-
size: None,
480-
shape: Some(vec![2, 1]),
481-
order: None,
482-
selection: None,
483-
compression: None,
484-
};
436+
let mut request_data = test_utils::get_test_request_data();
437+
request_data.dtype = models::DType::Int64;
438+
request_data.shape = Some(vec![2, 1]);
485439
let bytes = Bytes::copy_from_slice(&data);
486440
let array = build_array::<i64>(&request_data, &bytes).unwrap();
487441
assert_eq!(array![[0x04030201_i64], [0x08070605_i64]].into_dyn(), array);
@@ -490,18 +444,8 @@ mod tests {
490444
// Helper function for tests that slice an array using a selection.
491445
fn test_selection(slice: models::Slice, expected: Array1<u32>) {
492446
let data = [1, 2, 3, 4, 5, 6, 7, 8];
493-
let request_data = models::RequestData {
494-
source: Url::parse("http://example.com").unwrap(),
495-
bucket: "bar".to_string(),
496-
object: "baz".to_string(),
497-
dtype: models::DType::Uint32,
498-
offset: None,
499-
size: None,
500-
shape: None,
501-
order: None,
502-
selection: None,
503-
compression: None,
504-
};
447+
let mut request_data = test_utils::get_test_request_data();
448+
request_data.dtype = models::DType::Uint32;
505449
let bytes = Bytes::copy_from_slice(&data);
506450
let array = build_array::<u32>(&request_data, &bytes).unwrap();
507451
let shape = vec![2];

src/filter_pipeline.rs

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ pub fn filter_pipeline(
2929
#[cfg(test)]
3030
mod tests {
3131
use super::*;
32+
use crate::test_utils;
3233
use flate2::read::GzEncoder;
3334
use flate2::Compression;
3435
use std::io::Read;
35-
use url::Url;
3636

3737
fn compress_gzip(data: &[u8]) -> Bytes {
3838
// Adapated from flate2 documentation.
@@ -46,18 +46,7 @@ mod tests {
4646
fn test_filter_pipeline_noop() {
4747
let data = [1, 2, 3, 4];
4848
let bytes = Bytes::copy_from_slice(&data);
49-
let request_data = models::RequestData {
50-
source: Url::parse("http://example.com").unwrap(),
51-
bucket: "bar".to_string(),
52-
object: "baz".to_string(),
53-
dtype: models::DType::Int32,
54-
offset: None,
55-
size: None,
56-
shape: None,
57-
order: None,
58-
selection: None,
59-
compression: None,
60-
};
49+
let request_data = test_utils::get_test_request_data();
6150
let result = filter_pipeline(&request_data, &bytes).unwrap();
6251
assert_eq!(data.as_ref(), result);
6352
}
@@ -66,18 +55,8 @@ mod tests {
6655
fn test_filter_pipeline_gzip() {
6756
let data = [1, 2, 3, 4];
6857
let bytes = compress_gzip(data.as_ref());
69-
let request_data = models::RequestData {
70-
source: Url::parse("http://example.com").unwrap(),
71-
bucket: "bar".to_string(),
72-
object: "baz".to_string(),
73-
dtype: models::DType::Int32,
74-
offset: None,
75-
size: None,
76-
shape: None,
77-
order: None,
78-
selection: None,
79-
compression: Some(models::Compression::Gzip),
80-
};
58+
let mut request_data = test_utils::get_test_request_data();
59+
request_data.compression = Some(models::Compression::Gzip);
8160
let result = filter_pipeline(&request_data, &bytes).unwrap();
8261
assert_eq!(data.as_ref(), result);
8362
}

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,7 @@ pub mod operation;
3434
pub mod operations;
3535
pub mod s3_client;
3636
pub mod server;
37+
#[cfg(test)]
38+
pub mod test_utils;
3739
pub mod tracing;
3840
pub mod validated_json;

0 commit comments

Comments
 (0)