Compare commits
3 Commits
2d97cac64b
...
8c7f7471b2
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c7f7471b2 | |||
| 122c75f4be | |||
| 09e61eaabc |
@ -53,8 +53,8 @@ fn maestro_scores_filter<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
|||||||
let mut scores_vec: Vec<Box<dyn Score<T>>> = match filter {
|
let mut scores_vec: Vec<Box<dyn Score<T>>> = match filter {
|
||||||
Some(f) => scores_read
|
Some(f) => scores_read
|
||||||
.iter()
|
.iter()
|
||||||
.map(|s| s.clone_box())
|
|
||||||
.filter(|s| s.name().contains(&f))
|
.filter(|s| s.name().contains(&f))
|
||||||
|
.map(|s| s.clone_box())
|
||||||
.collect(),
|
.collect(),
|
||||||
None => scores_read.iter().map(|s| s.clone_box()).collect(),
|
None => scores_read.iter().map(|s| s.clone_box()).collect(),
|
||||||
};
|
};
|
||||||
@ -70,6 +70,7 @@ fn maestro_scores_filter<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
|||||||
return scores_vec;
|
return scores_vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: consider adding doctest for this function
|
||||||
fn list_scores_with_index<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
fn list_scores_with_index<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
||||||
scores_vec: &Vec<Box<dyn Score<T>>>,
|
scores_vec: &Vec<Box<dyn Score<T>>>,
|
||||||
) -> String {
|
) -> String {
|
||||||
@ -113,7 +114,7 @@ pub async fn init<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no score to run provided, and list isn't specified, print help
|
// prompt user if --yes is not specified
|
||||||
if !args.yes {
|
if !args.yes {
|
||||||
let confirmation = Confirm::new(
|
let confirmation = Confirm::new(
|
||||||
format!(
|
format!(
|
||||||
@ -131,7 +132,7 @@ pub async fn init<T: Topology + std::fmt::Debug + Send + Sync + 'static>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if all is specified, run all. Otherwise, run the first match or specified index
|
// Run filtered scores
|
||||||
for s in scores_vec {
|
for s in scores_vec {
|
||||||
println!("Running: {}", s.name());
|
println!("Running: {}", s.name());
|
||||||
maestro.interpret(s).await?;
|
maestro.interpret(s).await?;
|
||||||
@ -148,9 +149,9 @@ mod test {
|
|||||||
modules::dummy::{ErrorScore, PanicScore, SuccessScore},
|
modules::dummy::{ErrorScore, PanicScore, SuccessScore},
|
||||||
topology::HAClusterTopology,
|
topology::HAClusterTopology,
|
||||||
};
|
};
|
||||||
|
use harmony::{score::Score, topology::Topology};
|
||||||
|
|
||||||
#[tokio::test]
|
fn init_test_maestro() -> Maestro<HAClusterTopology> {
|
||||||
async fn test_init_success_score() {
|
|
||||||
let inventory = Inventory::autoload();
|
let inventory = Inventory::autoload();
|
||||||
let topology = HAClusterTopology::autoload();
|
let topology = HAClusterTopology::autoload();
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
let mut maestro = Maestro::new(inventory, topology);
|
||||||
@ -161,6 +162,12 @@ mod test {
|
|||||||
Box::new(PanicScore {}),
|
Box::new(PanicScore {}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
maestro
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_init_success_score() {
|
||||||
|
let maestro = init_test_maestro();
|
||||||
let res = crate::init(
|
let res = crate::init(
|
||||||
maestro,
|
maestro,
|
||||||
Some(crate::Args {
|
Some(crate::Args {
|
||||||
@ -179,15 +186,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_init_error_score() {
|
async fn test_init_error_score() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::init(
|
let res = crate::init(
|
||||||
maestro,
|
maestro,
|
||||||
@ -207,15 +206,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_init_number_score() {
|
async fn test_init_number_score() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::init(
|
let res = crate::init(
|
||||||
maestro,
|
maestro,
|
||||||
@ -235,15 +226,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_all() {
|
async fn test_filter_fn_all() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, true, None, 0);
|
let res = crate::maestro_scores_filter(&maestro, true, None, 0);
|
||||||
|
|
||||||
@ -252,15 +235,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_all_success() {
|
async fn test_filter_fn_all_success() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, true, Some("Success".to_owned()), 0);
|
let res = crate::maestro_scores_filter(&maestro, true, Some("Success".to_owned()), 0);
|
||||||
|
|
||||||
@ -276,15 +251,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_all_error() {
|
async fn test_filter_fn_all_error() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, true, Some("Error".to_owned()), 0);
|
let res = crate::maestro_scores_filter(&maestro, true, Some("Error".to_owned()), 0);
|
||||||
|
|
||||||
@ -300,15 +267,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_all_score() {
|
async fn test_filter_fn_all_score() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, true, Some("Score".to_owned()), 0);
|
let res = crate::maestro_scores_filter(&maestro, true, Some("Score".to_owned()), 0);
|
||||||
|
|
||||||
@ -330,15 +289,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_number() {
|
async fn test_filter_fn_number() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, false, None, 0);
|
let res = crate::maestro_scores_filter(&maestro, false, None, 0);
|
||||||
|
|
||||||
@ -356,15 +307,7 @@ mod test {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_filter_fn_number_invalid() {
|
async fn test_filter_fn_number_invalid() {
|
||||||
let inventory = Inventory::autoload();
|
let maestro = init_test_maestro();
|
||||||
let topology = HAClusterTopology::autoload();
|
|
||||||
let mut maestro = Maestro::new(inventory, topology);
|
|
||||||
|
|
||||||
maestro.register_all(vec![
|
|
||||||
Box::new(SuccessScore {}),
|
|
||||||
Box::new(ErrorScore {}),
|
|
||||||
Box::new(PanicScore {}),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let res = crate::maestro_scores_filter(&maestro, false, None, 11);
|
let res = crate::maestro_scores_filter(&maestro, false, None, 11);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user