bytebraise/data_smart/tests/
bytebraise.rs1#[cfg(test)]
2use regex::Captures;
3
4use crate::basic_datasmart_test;
5#[cfg(test)]
6use crate::data_smart::{DataSmart, DataSmartError, DataSmartResult, VAR_EXPANSION_REGEX};
7
8basic_datasmart_test!(do_something, d, {
9 d.set_var("OVERRIDES", "test:local:bar")?;
10 d.set_var("A", "B")?;
11 d.set_var("A_test", "Q")?;
12 d.set_var("A_local_test", "QQQQQ")?;
13
14 let v = d.get_var("A").unwrap().unwrap();
15 assert_eq!(v, "QQQQQ");
16});
17
18#[test]
19fn var_expansion_regex_works() {
20 let input = "${${foo}}";
21
22 let m = VAR_EXPANSION_REGEX.replace(input, |_caps: &Captures| "OK");
23 assert_eq!(m.into_owned(), String::from("${OK}"));
24}
25
26basic_datasmart_test!(parent_stuff, d, {
27 d.set_var("A", "B")?;
28
29 let copy = d.create_copy();
30 let v = copy.get_var("A")?.ok_or(DataSmartError::UnwrapNoneError)?;
32 assert_eq!(v, "B");
33});
34
35#[cfg(feature = "python")]
36basic_datasmart_test!(expansion_stuff, d, {
37 d.set_var("A", "B")?;
38 d.set_var("Q", "FRIEND")?;
39 d.set_var("A_append", "Q")?;
40 d.set_var("OVERRIDES_append", "T")?;
41 d.set_var("EXP", "${A}${@d.getVar(\"Q\")}")?;
42 d.set_var_flag("Q", "wat", "1")?;
43
44 let v = d.expand("${EXP}")?.ok_or(DataSmartError::UnwrapNoneError)?;
45 assert_eq!(v, "BQFRIEND");
46});