diff options
Diffstat (limited to 'lib/etc')
-rw-r--r-- | lib/etc/libimaginteraction/src/readline.rs | 26 | ||||
-rw-r--r-- | lib/etc/libimagutil/src/testing.rs | 17 |
2 files changed, 29 insertions, 14 deletions
diff --git a/lib/etc/libimaginteraction/src/readline.rs b/lib/etc/libimaginteraction/src/readline.rs index 58275444..7d498ce5 100644 --- a/lib/etc/libimaginteraction/src/readline.rs +++ b/lib/etc/libimaginteraction/src/readline.rs @@ -19,7 +19,7 @@ use error::InteractionError as IE; use error::InteractionErrorKind as IEK; -use error::MapErrInto; +use error::ResultExt; use toml::Value; @@ -46,36 +46,36 @@ impl Readline { let histfile = try!(match histfile { Value::String(s) => PathBuf::from(s), _ => Err(IE::from_kind(IEK::ConfigTypeError)) - .map_err_into(IEK::ConfigError) - .map_err_into(IEK::ReadlineError) + .chain_err(|| IEK::ConfigError) + .chain_err(|| IEK::ReadlineError) }); let histsize = try!(match histsize { Value::Integer(i) => i, _ => Err(IE::from_kind(IEK::ConfigTypeError)) - .map_err_into(IEK::ConfigError) - .map_err_into(IEK::ReadlineError) + .chain_err(|| IEK::ConfigError) + .chain_err(|| IEK::ReadlineError) }); let histigndups = try!(match histigndups { Value::Boolean(b) => b, _ => Err(IE::from_kind(IEK::ConfigTypeError)) - .map_err_into(IEK::ConfigError) - .map_err_into(IEK::ReadlineError) + .chain_err(|| IEK::ConfigError) + .chain_err(|| IEK::ReadlineError) }); let histignspace = try!(match histignspace { Value::Boolean(b) => b, _ => Err(IE::from_kind(IEK::ConfigTypeError)) - .map_err_into(IEK::ConfigError) - .map_err_into(IEK::ReadlineError) + .chain_err(|| IEK::ConfigError) + .chain_err(|| IEK::ReadlineError) }); let prompt = try!(match prompt { Value::String(s) => s, _ => Err(IE::from_kind(IEK::ConfigTypeError)) - .map_err_into(IEK::ConfigError) - .map_err_into(IEK::ReadlineError) + .chain_err(|| IEK::ConfigError) + .chain_err(|| IEK::ReadlineError) }); let config = Config::builder(). @@ -88,10 +88,10 @@ impl Readline { if !histfile.exists() { let _ = try!(File::create(histfile.clone()) - .map_err_into(IEK::ReadlineHistoryFileCreationError)); + .chain_err(|| IEK::ReadlineHistoryFileCreationError)); } - let _ = try!(editor.load_history(&histfile).map_err_into(ReadlineError)); + let _ = try!(editor.load_history(&histfile).chain_err(|| ReadlineError)); Ok(Readline { editor: editor, diff --git a/lib/etc/libimagutil/src/testing.rs b/lib/etc/libimagutil/src/testing.rs index 13a70d99..823e3f60 100644 --- a/lib/etc/libimagutil/src/testing.rs +++ b/lib/etc/libimagutil/src/testing.rs @@ -95,19 +95,34 @@ macro_rules! make_mock_app { } } + #[allow(unused)] pub fn generate_minimal_test_config() -> Option<Configuration> { ::toml::de::from_str("[store]\nimplicit-create=true") .map(Configuration::with_value) .ok() } + #[allow(unused)] pub fn generate_test_runtime<'a>(mut args: Vec<&'static str>) -> Result<Runtime<'a>, RuntimeError> { - let mut cli_args = vec!["imag-link", "--rtp", "/tmp"]; + let mut cli_args = vec![$appname, "--rtp", "/tmp"]; cli_args.append(&mut args); let cli_app = MockLinkApp::new(cli_args); Runtime::with_configuration(cli_app, generate_minimal_test_config()) } + + #[allow(unused)] + pub fn reset_test_runtime<'a>(mut args: Vec<&'static str>, old_runtime: Runtime) + -> Result<Runtime<'a>, RuntimeError> + { + let mut cli_args = vec![$appname, "--rtp", "/tmp"]; + + cli_args.append(&mut args); + + let cli_app = MockLinkApp::new(cli_args); + Runtime::with_configuration(cli_app, generate_minimal_test_config()) + .map(|rt| rt.with_store(old_runtime.extract_store())) + } } }; |