Skip to content

Commit

Permalink
tests: Use HttpHandlerTest struct instead of returning tuple (#3291)
Browse files Browse the repository at this point in the history
* tests: Use HttpHandlerTest struct instead of returning tuple

* tests: Hoist up usage of install_test_trace_subscriber()
  • Loading branch information
inahga committed Jul 10, 2024
1 parent c9b237c commit c4994ec
Show file tree
Hide file tree
Showing 8 changed files with 105 additions and 70 deletions.
16 changes: 13 additions & 3 deletions aggregator/src/aggregator/aggregation_job_continue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ mod tests {
},
http_handlers::{
aggregator_handler,
test_util::{setup_http_handler_test, take_problem_details},
test_util::{take_problem_details, HttpHandlerTest},
},
test_util::default_aggregator_config,
};
Expand Down Expand Up @@ -608,7 +608,12 @@ mod tests {

#[tokio::test]
async fn leader_rejects_aggregation_job_post() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Prio3Count).build();
datastore
Expand All @@ -634,7 +639,12 @@ mod tests {

#[tokio::test]
async fn leader_rejects_aggregation_job_delete() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Prio3Count).build();
datastore
Expand Down
24 changes: 0 additions & 24 deletions aggregator/src/aggregator/http_handlers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -847,28 +847,4 @@ pub mod test_util {
}
}
}

pub async fn setup_http_handler_test() -> (
MockClock,
EphemeralDatastore,
Arc<Datastore<MockClock>>,
impl Handler,
) {
install_test_trace_subscriber();
let clock = MockClock::default();
let ephemeral_datastore = ephemeral_datastore().await;
let datastore = Arc::new(ephemeral_datastore.datastore(clock.clone()).await);
datastore.put_global_hpke_key().await.unwrap();
let handler = aggregator_handler(
datastore.clone(),
clock.clone(),
TestRuntime::default(),
&noop_meter(),
default_aggregator_config(),
)
.await
.unwrap();

(clock, ephemeral_datastore, datastore, handler)
}
}
26 changes: 20 additions & 6 deletions aggregator/src/aggregator/http_handlers/tests/aggregate_share.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
use crate::aggregator::{
error::BatchMismatch,
http_handlers::test_util::{
decode_response_body, setup_http_handler_test, take_problem_details,
},
http_handlers::test_util::{decode_response_body, take_problem_details, HttpHandlerTest},
};
use assert_matches::assert_matches;
use futures::future::try_join_all;
Expand Down Expand Up @@ -52,7 +50,12 @@ pub(crate) async fn post_aggregate_share_request<Q: query_type::QueryType>(

#[tokio::test]
async fn aggregate_share_request_to_leader() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Fake { rounds: 1 }).build();
Expand Down Expand Up @@ -84,7 +87,13 @@ async fn aggregate_share_request_to_leader() {

#[tokio::test]
async fn aggregate_share_request_invalid_batch_interval() {
let (clock, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
clock,
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
const REPORT_EXPIRY_AGE: Duration = Duration::from_seconds(3600);
Expand Down Expand Up @@ -143,7 +152,12 @@ async fn aggregate_share_request_invalid_batch_interval() {

#[tokio::test]
async fn aggregate_share_request() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Fake { rounds: 1 })
.with_max_batch_query_count(1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::aggregator::{
post_aggregation_job_and_decode, post_aggregation_job_expecting_error,
},
empty_batch_aggregations,
http_handlers::test_util::{setup_http_handler_test, HttpHandlerTest},
http_handlers::test_util::HttpHandlerTest,
test_util::{generate_helper_report_share, BATCH_AGGREGATION_SHARD_COUNT},
};
use futures::future::try_join_all;
Expand Down Expand Up @@ -1056,7 +1056,12 @@ async fn aggregate_continue_accumulate_batch_aggregation() {

#[tokio::test]
async fn aggregate_continue_leader_sends_non_continue_or_finish_transition() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Poplar1 { bits: 1 }).build();
Expand Down Expand Up @@ -1341,7 +1346,12 @@ async fn aggregate_continue_prep_step_fails() {

#[tokio::test]
async fn aggregate_continue_unexpected_transition() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Poplar1 { bits: 1 }).build();
Expand Down Expand Up @@ -1452,7 +1462,12 @@ async fn aggregate_continue_unexpected_transition() {

#[tokio::test]
async fn aggregate_continue_out_of_order_transition() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Poplar1 { bits: 1 }).build();
Expand Down Expand Up @@ -1622,7 +1637,12 @@ async fn aggregate_continue_out_of_order_transition() {

#[tokio::test]
async fn aggregate_continue_for_non_waiting_aggregation() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Fake { rounds: 1 }).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ use crate::aggregator::{
empty_batch_aggregations,
http_handlers::{
aggregator_handler,
test_util::{
decode_response_body, setup_http_handler_test, take_problem_details, HttpHandlerTest,
},
test_util::{decode_response_body, take_problem_details, HttpHandlerTest},
},
test_util::{
default_aggregator_config, generate_helper_report_share,
Expand Down Expand Up @@ -48,7 +46,12 @@ use trillium_testing::{assert_headers, prelude::put, TestConn};

#[tokio::test]
async fn aggregate_leader() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Prio3Count).build();
datastore
Expand Down Expand Up @@ -111,7 +114,12 @@ async fn aggregate_leader() {

#[tokio::test]
async fn aggregate_wrong_agg_auth_token() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let dap_auth_token = AuthenticationToken::DapAuth(random());

Expand Down
11 changes: 7 additions & 4 deletions aggregator/src/aggregator/http_handlers/tests/collection_job.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
use crate::aggregator::{
collection_job_tests::setup_collection_job_test_case,
http_handlers::test_util::{
decode_response_body, setup_http_handler_test, take_problem_details,
},
http_handlers::test_util::{decode_response_body, take_problem_details, HttpHandlerTest},
};
use janus_aggregator_core::{
datastore::models::{
Expand Down Expand Up @@ -132,7 +130,12 @@ async fn collection_job_put_request_invalid_aggregation_parameter() {

#[tokio::test]
async fn collection_job_put_request_invalid_batch_size() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

// Prepare parameters.
let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Fake { rounds: 1 })
Expand Down
30 changes: 25 additions & 5 deletions aggregator/src/aggregator/http_handlers/tests/hpke_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::{
aggregator::{
http_handlers::{
aggregator_handler, aggregator_handler_with_aggregator,
test_util::{setup_http_handler_test, take_problem_details, take_response_body},
test_util::{take_problem_details, take_response_body, HttpHandlerTest},
HPKE_CONFIG_SIGNATURE_HEADER,
},
test_util::{
Expand Down Expand Up @@ -109,7 +109,12 @@ async fn task_specific_hpke_config() {

#[tokio::test]
async fn global_hpke_config() {
let (clock, _ephemeral_datastore, datastore, _) = setup_http_handler_test().await;
let HttpHandlerTest {
clock,
ephemeral_datastore: _ephemeral_datastore,
datastore,
..
} = HttpHandlerTest::new().await;

// Retrieve the global keypair from the test fixture.
let first_hpke_keypair = datastore
Expand Down Expand Up @@ -244,7 +249,12 @@ async fn global_hpke_config() {

#[tokio::test]
async fn global_hpke_config_with_taskprov() {
let (clock, _ephemeral_datastore, datastore, _) = setup_http_handler_test().await;
let HttpHandlerTest {
clock,
ephemeral_datastore: _ephemeral_datastore,
datastore,
..
} = HttpHandlerTest::new().await;

// Retrieve the global keypair from the test fixture.
let first_hpke_keypair = datastore
Expand Down Expand Up @@ -327,7 +337,12 @@ fn check_hpke_config_is_usable(hpke_config_list: &HpkeConfigList, hpke_keypair:

#[tokio::test]
async fn hpke_config_cors_headers() {
let (_, _ephemeral_datastore, datastore, handler) = setup_http_handler_test().await;
let HttpHandlerTest {
ephemeral_datastore: _ephemeral_datastore,
datastore,
handler,
..
} = HttpHandlerTest::new().await;

let task = TaskBuilder::new(QueryType::TimeInterval, VdafInstance::Prio3Count)
.build()
Expand Down Expand Up @@ -383,7 +398,12 @@ async fn verify_and_decode_hpke_config_list(test_conn: &mut TestConn) -> HpkeCon

#[tokio::test]
async fn require_global_hpke_keys() {
let (clock, _ephemeral_datastore, datastore, _) = setup_http_handler_test().await;
let HttpHandlerTest {
clock,
ephemeral_datastore: _ephemeral_datastore,
datastore,
..
} = HttpHandlerTest::new().await;

// Retrieve the global keypair from the test fixture.
let keypair = datastore
Expand Down
Loading

0 comments on commit c4994ec

Please sign in to comment.