Wrote tests for config::new() which is used by pyo3 code (#46)
This commit is contained in:
90
src/lib.rs
90
src/lib.rs
@@ -1032,3 +1032,93 @@ mod lib_tests {
|
|||||||
|
|
||||||
//TODO: tests for correct SQL code produced by output_sql
|
//TODO: tests for correct SQL code produced by output_sql
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod pyo3_tests {
|
||||||
|
use crate::{Config, LevelSizes};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn new_config_correct_when_things_empty() {
|
||||||
|
let db_url = "postresql://homeserver.com/synapse".to_string();
|
||||||
|
let room_id = "!roomid@homeserver.com".to_string();
|
||||||
|
let output_file = None;
|
||||||
|
let min_state_group = None;
|
||||||
|
let groups_to_compress = None;
|
||||||
|
let min_saved_rows = None;
|
||||||
|
let max_state_group = None;
|
||||||
|
let level_sizes = "100,50,25".to_string();
|
||||||
|
let transactions = false;
|
||||||
|
let graphs = false;
|
||||||
|
|
||||||
|
let config = Config::new(
|
||||||
|
db_url.clone(),
|
||||||
|
room_id.clone(),
|
||||||
|
output_file,
|
||||||
|
min_state_group,
|
||||||
|
groups_to_compress,
|
||||||
|
min_saved_rows,
|
||||||
|
max_state_group,
|
||||||
|
level_sizes,
|
||||||
|
transactions,
|
||||||
|
graphs,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(config.db_url, db_url);
|
||||||
|
assert!(config.output_file.is_none());
|
||||||
|
assert_eq!(config.room_id, room_id);
|
||||||
|
assert!(config.min_state_group.is_none());
|
||||||
|
assert!(config.groups_to_compress.is_none());
|
||||||
|
assert!(config.min_saved_rows.is_none());
|
||||||
|
assert!(config.max_state_group.is_none());
|
||||||
|
assert_eq!(
|
||||||
|
config.level_sizes,
|
||||||
|
"100,50,25".parse::<LevelSizes>().unwrap()
|
||||||
|
);
|
||||||
|
assert_eq!(config.transactions, transactions);
|
||||||
|
assert_eq!(config.graphs, graphs);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn new_config_correct_when_things_not_empty() {
|
||||||
|
// db_url and room_id have to be set or it will panic
|
||||||
|
let db_url = "postresql://homeserver.com/synapse".to_string();
|
||||||
|
let room_id = "room_id".to_string();
|
||||||
|
let output_file = Some("/tmp/myFile".to_string());
|
||||||
|
let min_state_group = Some(3225);
|
||||||
|
let groups_to_compress = Some(970);
|
||||||
|
let min_saved_rows = Some(500);
|
||||||
|
let max_state_group = Some(3453);
|
||||||
|
let level_sizes = "128,64,32".to_string();
|
||||||
|
let transactions = true;
|
||||||
|
let graphs = true;
|
||||||
|
|
||||||
|
let config = Config::new(
|
||||||
|
db_url.clone(),
|
||||||
|
room_id.clone(),
|
||||||
|
output_file,
|
||||||
|
min_state_group,
|
||||||
|
groups_to_compress,
|
||||||
|
min_saved_rows,
|
||||||
|
max_state_group,
|
||||||
|
level_sizes,
|
||||||
|
transactions,
|
||||||
|
graphs,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(config.db_url, db_url);
|
||||||
|
assert!(!config.output_file.is_none());
|
||||||
|
assert_eq!(config.room_id, room_id);
|
||||||
|
assert_eq!(config.min_state_group, Some(3225));
|
||||||
|
assert_eq!(config.groups_to_compress, Some(970));
|
||||||
|
assert_eq!(config.min_saved_rows, Some(500));
|
||||||
|
assert_eq!(config.max_state_group, Some(3453));
|
||||||
|
assert_eq!(
|
||||||
|
config.level_sizes,
|
||||||
|
"128,64,32".parse::<LevelSizes>().unwrap()
|
||||||
|
);
|
||||||
|
assert_eq!(config.transactions, transactions);
|
||||||
|
assert_eq!(config.graphs, graphs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user