From e5174f4181bfcc9c95d686261e0a931c26a59565 Mon Sep 17 00:00:00 2001 From: Azrenbeth <77782548+Azrenbeth@users.noreply.github.com> Date: Mon, 16 Aug 2021 14:44:56 +0100 Subject: [PATCH] Wrote tests for config::new() which is used by pyo3 code (#46) --- src/lib.rs | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 32f1d85..8e00afd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1032,3 +1032,93 @@ mod lib_tests { //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::().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::().unwrap() + ); + assert_eq!(config.transactions, transactions); + assert_eq!(config.graphs, graphs); + } +}